簡體   English   中英

需要:Tomcat + Axis2 + JAX-WS傻瓜指南

[英]Needed: Tomcat + Axis2 + JAX-WS guide for dummies

我們正在使用Tomcat + Axis2 + POJO進行Web服務實現,我們遇到了POJO和Axis2的一些問題,這些問題對我們來說是一個顯而易見的問題。 看起來,SOAP解析的Axis2和POJO實現忽略了XML元素的名稱,只是根據SOAP消息中XML元素的順序為參數賦值。 這個問題在復雜的API中引起了很多問題。

在Axis2的文檔沼澤中游泳后,我更加困惑然后我進來了,所以我真的需要一些幫助。

我知道JAX-WS和Axis2沒有那些問題(如果我錯了,請糾正我),但我似乎不知道如何開發和部署這樣的解決方案。

我編寫了一個POJO,並使用JAX-WS注釋對其進行了注釋,我在類上執行了wsgen,並將所有文件與此services.xml文件一起打包在aar文件中:

<service name="TESTService" >
    <description>
        TEST web service
    </description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.jaxws.server.JAXWSMessageReceiver" />
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.jaxws.server.JAXWSMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass">com.test.WsdlImpl</parameter>
</service>

當我嘗試執行Web服務調用時,我在Tomcat中遇到異常:

[ERROR] The service class cannot be found for this AxisService.
java.lang.RuntimeException: The service class cannot be found for this AxisService.
    at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:95)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

請幫助我解釋如何使用Tomcat + Axis2部署JAX-WS(如果CXF與Tomcat一起使用,我也可以使用它),或者引導我閱讀涵蓋Tomcat + Axis2的GOOD教程。

謝謝!!

直接來自Axis2網站, 是一個涵蓋Axis2和Jax-Ws的教程。 您可能因為缺少axis2-jaxws-1.3.jar而得到上述錯誤。 檢查你的類路徑。

您當然可以將TomF與Tomcat一起使用,我個人認為您可以更好地使用它。

與CXF一樣,另一個不錯的選擇是Apache Tuscany - 使POJO變得非常容易。

我被建議使用JAX-WS層(Metro 1.4)的官方Sun實現,到目前為止它運行良好。 主要的是它知道如何在Web服務器內的運行時根據需要生成工件。

當我在這里完成我們的生產質量時,我可能會寫下所需的步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM