0

我有一些 Java 客户端代码正在远程服务器上的战争中连接到 Web 服务。我正在使用 myeclipse 10.0、java 1.6、cxf 2.2、嵌入式 tomcat 6 localhost 服务器,并且我在命令行下运行 tomcat 6,两个 tomcat 都在同一台机器上运行。

当我的 wsdl 文件指向远程服务器上的服务时,一切正常,但是,当我在一台机器上设置所有内容时,当我尝试访问该服务时出现 java.io 异常。

我在不同的端口上设置了两个 tomcat 实例,我可以看到使用 ProcessExplorer 一切正常,使用 netstat 我可以看到这些端口正在与它们的侦听器一起工作,没有冲突。我使用此链接中的信息来设置 tomcat 实例。然后我将war文件复制到webapps目录,我看到tomcat分解了类并加载了它们。我们还使用 cacerts 文件进行 ssl 身份验证,我验证它位于 jvm 中的正确位置。

这是错误: 由:java.io.IOException://在 org.apache.cxf.transport.http 的 org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2071) 引起。 HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2022) 在 org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1947) 在 org.apache.cxf.transport.AbstractConduit.close(AbstractConduit. java:66) 在 org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632) 在 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(未知来源)

我正在使用这个 url 来访问 webservice 端点:

http://localhost:7070/<root context>/<serviceName>

任何想法为什么这不起作用或者是否有更好的方法来做到这一点?

后果:

我正在使用的战争文件来自一个仓库,并在我下载它时将日期添加到它的名称中。我通过剥离日期更改了战争的名称以匹配上下文根,重新部署它,一切都开始工作了。

4

2 回答 2

1

我正在使用的战争文件来自一个回购,它在我下载它时将日期添加到它的名称中。当我重新审视我所做的事情时,我意识到了这个问题,所以我通过剥离日期更改了战争的名称以匹配上下文根,重新部署它,一切都开始工作了。

于 2012-10-09T13:55:26.587 回答
0

只需复制wartomcatwebapps目录下的文件,然后重启Tomcat即可。该war文件将自动转换为app folder

于 2012-10-06T21:01:24.220 回答