Apache CXF 调用出现的问题

首先申明我用 apache CXF 版本是 apache-cxf-2.5.10.

原文引用:http://blog.csdn.net/crazycoder2010/article/details/6673982

OSChina转载:http://www.oschina.net/question/54100_26065

今天突然想试试之前一直没有心情尝试的Apache CXF,就在OSChina上找示例,结果发现一篇很好的文章. 见上.

我采用他写的代码,WebService的Server段基本都搭好,我在Clinet段调用,出现问题.

package cn.haohaowo.webservice.client;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsClientFactoryBean;

import cn.haohaowo.webservice.HelloWorldService;

public class WebServiceClient {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		JaxWsClientFactoryBean jaxWsClientFactoryBean = new JaxWsClientFactoryBean();
		jaxWsClientFactoryBean.getInInterceptors().add(new LoggingInInterceptor());
		jaxWsClientFactoryBean.getInFaultInterceptors().add(new LoggingOutInterceptor());
		jaxWsClientFactoryBean.setServiceClass(HelloWorldService.class);
		jaxWsClientFactoryBean.setAddress("http://localhost:9000/helloWorldService");
		HelloWorldService helloWorldService = (HelloWorldService) jaxWsClientFactoryBean.create();
		String result = helloWorldService.sayHello("Robinson");
		System.out.println(result);
		
//		Client client = jaxWsClientFactoryBean.create();
//		Object[] obj = client.invoke("sayHello", "Robinson");
//		System.out.println(obj[0]);
	}

}

2013-5-2 14:52:33 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://webservice.haohaowo.cn/}HelloWorldServiceService from class cn.haohaowo.webservice.HelloWorldService
Exception in thread "main" java.lang.ClassCastException: org.apache.cxf.endpoint.ClientImpl cannot be cast to cn.haohaowo.webservice.HelloWorldService
	at cn.haohaowo.webservice.client.WebServiceClient.main(WebServiceClient.java:21)
大家可以看到,很明显是一个类型转换错误.当时我就纳闷,为什么是这个错误呢.

但是当我看到另外一个实例代码,和其他语言交互的时候官方写法,我才发觉给出示例的人把代码写错了.

jaxWsClientFactoryBean.create()
通过字面的意思就知道,这个客户端仓库类创建一个实例,应该实例化的Client类,而不是Service类. 谨记呀... 

转载于:https://my.oschina.net/robinsonlu/blog/126956

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值