客户端调用代码:
URL wsdlURL = DataDownloaderService.WSDL_LOCATION;
DataDownloaderService ss = new DataDownloaderService(wsdlURL, SERVICE_NAME);
DataUpdateService port = ss.getDataDownloaderPort();
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(port);
org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint();
Map<String, Object> outProps = new HashMap<String, Object>();
outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
outProps.put(WSHandlerConstants.USER, "joe");
outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, ClientPasswordCallback.class.getName());
org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor();
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
cxfEndpoint.getOutInterceptors().add(wssOut);
response = port.getRequestUpdateData(request);
执行代码后报错如下:
2011-4-17 16:04:38 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
信息: Creating Service {http://update.server.synch_data.boling.com/}DataDownloaderService from WSDL: http://localhost:8084/synchData/services/DownloadData?wsdl
2011-4-17 16:04:51 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
警告: Interceptor for {http://update.server.synch_data.boling.com/}DataDownloaderService#{http://update.server.synch_data.boling.com/}getRequestUpdateData has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: <html><head><title>Apache Tomcat/6.0.26 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>javax.servlet.ServletException: Servlet execution threw an exception
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
</pre></p><p><b>root cause</b> <pre>java.lang.IncompatibleClassChangeError: Expected static field org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.secEngine
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getSecurityEngine(WSS4JInInterceptor.java:595)
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:168)
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:80)
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:97)
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:461)
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188)
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.26</h3></body></html>
at org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:79)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:755)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2335)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2193)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2037)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:697)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
at $Proxy29.getRequestUpdateData(Unknown Source)
at com.boling.synch_data.server.update.DataUpdateService_DataDownloaderPort_Client.downloadData(DataUpdateService_DataDownloaderPort_Client.java:55)
at com.boling.data_update.utils.ServiceProxy.invokeBytableName(ServiceProxy.java:56)
at com.boling.data_update.utils.ServiceProxy.getDataFrByTableName(ServiceProxy.java:37)
at com.boling.data_update.ServiceClient.synchDataWithServer(ServiceClient.java:30)
at com.boling.data_update.ServiceClient.main(ServiceClient.java:119)
这个到底是啥错误?我都调试一个下午了
分享到:
相关推荐
在使用CXF客户端生成器时,首先需要将Web服务的WSDL URL或者WSDL文件放在本地,然后进入CXF库的bin目录。在给定的压缩包文件"apache-cxf-2.7.16-src"中,包含了CXF源码,开发者可以通过编译和构建这个源码来获取可...
- **客户端代码**:客户端调用服务时,需要正确处理认证和授权过程。确保使用正确的API来设置认证信息。 - **异常处理**:确保对可能出现的安全异常进行了适当的捕获和处理。 6. **日志和调试**: - **启用日志*...
值得注意的是,为了保持线程安全性,开发人员在实现这些方法时应避免直接访问Interceptor类的内部状态,因为拦截器实例可能会并发地由多个线程调用。 #### InterceptorChain `InterceptorChain`充当了拦截器的管理...
在IT行业中,Web Service是一种基于XML的通信标准,它允许不同的应用程序之间进行数据交换,而不管它们是由何种编程语言或操作系统构建...理解WSDL和客户端生成工具的工作原理,有助于提升开发效率并减少出错的可能性。
它是由Apache CXF项目提供的,能够从一个WSDL文件自动生成Java源代码,这些源代码包含了客户端调用Web服务所需的 stubs、proxies和数据绑定类。这极大地简化了开发者的工作,无需手动编写复杂的网络调用代码。 生成...
"WSDL反向生成工具"的功能在于,当开发者拥有一个WSDL文件时,可以通过这个工具自动生成对应的客户端代码,从而无需手动编写调用服务所需的复杂代码。这样不仅提高了开发效率,也降低了出错的可能性。 【标签】 1. ...
WSDL2Java工具使得调用Web服务如同调用本地方法一样简单,减少了开发复杂性和出错的可能性。 在实际使用中,这两者通常结合在一起,先使用Java2WSDL创建WSDL文件,然后通过WSDL2Java生成客户端代码,这样可以快速...
2. 一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常。 解决方法 解决 Conexion reset by peer 异常的方法有多种,包括: 1. 设置 Socket 的 timeout 时间,以避免连接断开后的读和写...
在使用“soap-build”时,你需要有SOAP服务的WSDL(Web Service Description Language)文件,这是一个XML文档,定义了服务的接口、消息格式和调用方式。通过解析WSDL,工具能自动构建出符合规范的SOAP请求模板。...
在提供的文件列表中,`index.jsp`可能是项目的主页面,用于展示或调用Web服务的客户端示例。`WEB-INF`目录包含了应用的Web相关配置,如`web.xml`,在这里可能会有Spring和XFire的配置。`META-INF`目录通常包含项目的...
它同时提供一些工具用来讲 WSDL 文档转换成客户端的调用框架以及根据类来产生 WSDL 定义文档。 开发项目中如何选择使用 Axis2 和其它的WebService: * 如果你的应用程序需要支持多语言即有 C++, .net, Java,你...
这些库允许开发人员从WSDL生成Java客户端代码,简化了调用Web服务的过程。本项目“wsdl-reader”可能就是基于这样的库来实现的。 SOAP是一种基于XML的消息协议,用于在Web上交换结构化的和类型化的信息。一个SOAP...