[英]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.