2012-10-06 25 views
0

我有一些java客戶端代碼在遠程服務器上的戰爭中與Web服務建立連接。我使用myeclipse 10.0,java 1.6,cxf 2.2,嵌入式tomcat 6本地主機服務器,並且我正在命令行運行tomcat 6,兩個tomcat都在同一臺機器上運行。如何在本地使用java和tomcat將戰爭作爲Web服務運行?

當我的wsdl文件指向遠程服務器上的服務時,一切正常,但是,當我在一臺機器上設置所有內容時,我嘗試訪問該服務時遇到java.io異常。

我在不同的端口上安裝了tomcat的兩個實例,我可以看到使用ProcessExplorer和使用netstat加載的一切正常,我可以看到端口與他們的監聽器沒有衝突。我用這個link的信息來設置tomcat實例。然後我將war文件複製到webapps目錄中,我看到tomcat爆炸了這些類並加載了它們。我們還使用cacerts文件進行ssl身份驗證,並驗證它位於jvm中的正確位置。

以下是錯誤:java.io.IOException的:通過在引起$ org.apache.cxf.transport.http.HTTPConduit // WrappedOutputStream.handleResponseInternal (HTTPConduit.java:2071) 在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。在org.apache.cxf.interceptor.MessageSenderInterceptor $ MessageSenderEndingInterceptor.handleMessage(org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632) MessageSenderInterceptor.java:62) at o rg.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:472) at org.apache.cxf.endpoint.ClientImpl。調用(ClientImpl.java:302) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123) 在$ Proxy71.get(來源不明)

我使用這個網址打web服務端點:

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

任何想法,爲什麼這不工作,或者如果有更好的方法來做到這一點?

後果:

我使用了WAR文件從一個回購協議,並添加到它的名字,當我下載了它的日期。我改變了戰爭的名稱,通過剝離日期來匹配上下文根,重新部署它並開始工作。

+1

IOException stacktrace看起來像? –

+0

共享IOException的堆棧跟蹤將有所幫助。您也可以考慮在Web服務的客戶端和服務器端添加日誌輸入和輸出攔截器:http://cxf.apache.org/docs/debugging-and-logging.html –

+0

我正在運行SSL調試不幸的是,日誌記錄在我的機器上工作。 –

回答

1

我正在使用的war文件來自一個repo,它在我下載它時添加了日期。當我重新審視我所做的事時,我意識到了這個問題,於是我改變了戰爭的名稱,通過剝離日期來匹配上下文根,重新部署了它並開始工作。

0

只需複製tomcat webapps目錄中的war文件,然後重新啓動Tomcat。 war文件將被自動轉換爲app folder

+0

我遺漏了我已經完成了那部分。我現在把它添加到問題中。 –

相關問題