我有一些java客户端代码在远程服务器上的战争中连接到Web服务。我正在使用myeclipse 10.0,java 1.6,cxf 2.2,嵌入式tomcat 6 localhost服务器,我正在命令行运行tomcat 6,两个tomcats都在同一台机器上运行。
当我的wsdl文件指向远程服务器上的服务时,一切正常,但是,当我在我的一台机器上设置所有内容时,当我尝试访问该服务时,我得到了一个java.io异常。
我在不同的端口上设置了tomcat的两个实例,我可以看到使用ProcessExplorer加载所有内容并使用netstat我可以看到端口正在与他们的侦听器一起工作而没有冲突。我使用了这个link中的信息来设置tomcat实例。然后我将war文件复制到webapps目录,我看到tomcat爆炸了这些类并加载了它们。我们还使用cacerts文件进行ssl身份验证,我确认它位于jvm中的正确位置。
以下是错误:引起:java.io.IOException:// at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2071) at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.handleResponse(HTTPConduit.java:2022) at org.apache.cxf.transport.http.HTTPConduit $ WrappedOutputStream.close(HTTPConduit.java:1947) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632) at org.apache.cxf.interceptor.MessageSenderInterceptor $ MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 在org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) 在org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:472) 在org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:302) 在org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) 在org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) 在org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123) 在$ Proxy71.get(未知来源)
我正在使用此网址来访问网络服务端点:
http://localhost:7070/<root context>/<serviceName>
为什么这不起作用或者有更好的方法可以做到这一点?
后果:
我正在使用的战争文件来自回购,并在我下载时将日期添加到它的名称。我通过剥离日期改变了战争的名称以匹配上下文根,重新部署它并且一切都开始工作。
答案 0 :(得分:1)
我正在使用的war文件来自一个repo,当我下载它时,它将日期添加到它的名字中。当我重新审视我所做的事情时,我意识到了这个问题,所以我通过剥离日期来改变战争的名称以匹配上下文根,重新部署它并且一切都开始工作。
答案 1 :(得分:0)
只需复制tomcat war
目录中的webapps
文件,然后重新启动Tomcat。 war
文件将自动转换为app folder