cxf webservice客户端调用时报以下错误

fanyuna 2012-06-21 11:36:44
环境 :JDK1.5

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: object is not an instance of declaring class while invoking public abstract java.lang.String com.thunisoft.fy.ws.IXxgxService.sayHello() with params [].
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
at $Proxy34.sayHello(Unknown Source)
at com.thunisoft.fy.ws.FrxxWsClient.main(FrxxWsClient.java:72)
Caused by: org.apache.cxf.binding.soap.SoapFault: object is not an instance of declaring class while invoking public abstract java.lang.String com.thunisoft.fy.ws.IXxgxService.sayHello() with params [].
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:672)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2210)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2087)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1985)
at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:188)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:640)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:484)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:310)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:262)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
... 2 more


客户端调用代码:
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
factory.setServiceClass(IXxgxService.class);
factory.setAddress("http://172.16.12.41:8080/xxgx/services/xxgxWs");
IXxgxService xx = (IXxgxService) factory.create();
System.out.println(xx.sayHello());

注:http://172.16.12.41:8080/xxgx/services/xxgxWs?wsdl 可以访问

请大侠指点!在线等
...全文
941 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
marey_marey111 2012-07-30
  • 打赏
  • 举报
回复
我现在已经有点鄙视CXF了...
inkinwolf 2012-07-30
  • 打赏
  • 举报
回复 1
客户端只知道服务端webservice的url,你又该如何调用呢?使用JaxWsProxyFactoryBean的前提必须有service的接口代码。
fanyuna 2012-06-21
  • 打赏
  • 举报
回复
借此贴再请教下大家,

目前正在做webservice安全性认证的功能,要求用户名、密码、IP都要与注册的用户一致。
在网上查了下,基本都是用户名和密码一起验证,IP是单独的,能不能在一个拦截器里验证?
如果不能在一个拦截器,那么两个拦截器是按配置的先后顺序来执行的吗?
fanyuna 2012-06-21
  • 打赏
  • 举报
回复
愁死我了,是自己的粗心导致的!
webservice配置文件的实体id与Spring配置文件的实体id相同导致的

害得我浪费了大半天的时间!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧