我试图创建一个部署在WebSphere 8.5应用服务器上的Webservice实现,我已经创建了骨架和所有的存根,但我不知道如何打包我的应用。我注意到使用axis2-wsdl2code-maven-plugin创建了一个services.xml文件,它应该替换来自axis1的旧WSDD文件。但是我不知道应该把services.xml放在哪里,如何设置web.xml(如果需要的话)。
所有的东西都应该被打包在一个简单的war文件中。
我找不到任何简单的文档。
更新。我能够部署我的应用程序,但我既不能访问服务,也不能访问它的wsdl(WSDL不存在于存档中)。
当我试图访问我的webservice时,我得到了。
org.apache.axis2.AxisFault: 无法找到端点引用的服务。
我有以下services.xml文件,位于我的WAR存档的WEB-INFservices fodler下。
<?xml version="1.0" encoding="UTF-8"?><!-- This file was auto-generated from WSDL --><!-- by the Apache Axis2 version: 1.6.2 Built on : Apr 17, 2012 (05:33:49 IST) --><serviceGroup>
<service name="PagamentoBollettinoPostaleInf">
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="myservice.PagamentoBollettinoPostaleInfMessageReceiverInOut"/>
</messageReceivers>
<parameter name="ServiceClass">myservice.PagamentoBollettinoPostaleInfSkeleton</parameter>
<parameter name="useOriginalwsdl">true</parameter>
<parameter name="modifyUserWSDLPortAddress">true</parameter>
<operation name="getPagamentoBollettinoPostaleInf" mep="http://www.w3.org/ns/wsdl/in-out" namespace="******">
<actionMapping>urn:getPagamentoBollettinoPostaleInf</actionMapping>
<outputActionMapping>urn:getPagamentoBollettinoPostaleInfResponse</outputActionMapping>
</operation>
</service>
</serviceGroup>
这是我的WEB.XML文件。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>inviaAnomalia</display-name>
<servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
这是我试图连接的端点。http:/localhost:9080war_context_rootservicesPagamentoBollettinoPostaleInf:
当我试图通过连接到以下地址来获取webservice的WSDL文件时,就会发生这种情况。http:/localhost:9080war_context_rootservicesPagamentoBollettinoPostaleInf?wsdl。
已解决
解决方法是按照这里的步骤进行。http:/maksim.sorokin.dkit20110113axis2-maven-servlets-tomcat。
然后,为了正确部署,WSDL和services.xml描述符文件必须放在里面。
WEB-INFservices<服务名称>META-INF
此外,按照建议禁用IBM JAX-WS引擎,也是一个不错的选择。Bruce T. 并设置了如下图所示的classloader,解决了这个问题。