配置生成的服务 java axis2

问题描述

嗨,我使用 apache axis2 从 wsdl 开发了一个 Java Web 服务,并且它工作正常。现在,我正在尝试根据我必须尊重的必要条件将 Web 服务端点 url 从 http://localhost:8080/SIIDotNet4SOAP/SII4SOAP 更改为 http://localhost:8080/SIIDotNet4SOAP/SII4SOAP.asmx 我遇到了一些困难。

遵循 web.xml 和 server-config.wsdd:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
  <display-name>SIIDotNet4SOAP</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.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>/*</url-pattern>
  </servlet-mapping>
  <servlet>
    <display-name>Axis Admin Servlet</display-name>
    <servlet-name>AdminServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
    <load-on-startup>100</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>AdminServlet</servlet-name>
    <url-pattern>/servlet/AdminServlet</url-pattern>
  </servlet-mapping>
</web-app>

server-config.wsdd

<ns1:deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:ns1="http://xml.apache.org/axis/wsdd/">
 <ns1:globalConfiguration>
  <ns1:parameter name="sendMultiRefs" value="true"/>
  <ns1:parameter name="disablePrettyXML" value="true"/>
  <ns1:parameter name="adminPassword" value="admin"/>
  <ns1:parameter name="attachments.Directory" value="C:\Users\s.sforza\Desktop\Sviluppo\Workspaces\eclipse-fideuram\.Metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\AuditTraceServer\WEB-INF\attachments"/>
  <ns1:parameter name="dotNetSoapEncFix" value="true"/>
  <ns1:parameter name="enableNamespacePrefixOptimization" value="false"/>
  <ns1:parameter name="sendXMLDeclaration" value="true"/>
  <ns1:parameter name="sendxsitypes" value="true"/>
  <ns1:parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <ns1:requestFlow>
   <ns1:handler type="java:org.apache.axis.handlers.JWSHandler">
    <ns1:parameter name="scope" value="session"/>
   </ns1:handler>
   <ns1:handler type="java:org.apache.axis.handlers.JWSHandler">
    <ns1:parameter name="scope" value="request"/>
    <ns1:parameter name="extension" value=".jwr"/>
   </ns1:handler>
  </ns1:requestFlow>
 </ns1:globalConfiguration>
 <ns1:handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <ns1:handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <ns1:handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <ns1:service name="AdminService" provider="java:MSG">
  <ns1:parameter name="allowedMethods" value="AdminService"/>
  <ns1:parameter name="enableRemoteAdmin" value="false"/>
  <ns1:parameter name="className" value="org.apache.axis.utils.Admin"/>
  <ns1:namespace>http://xml.apache.org/axis/wsdd/</ns1:namespace>
 </ns1:service>
 <ns1:service name="Version" provider="java:RPC">
  <ns1:parameter name="allowedMethods" value="getVersion"/>
  <ns1:parameter name="className" value="org.apache.axis.Version"/>
 </ns1:service>
 <ns1:service name="SII4SOAP" 
        provider="java:RPC" 
        style="wrapped" 
        use="literal">

 <ns1:parameter name="allowedMethods" value="*"/>
  <ns1:parameter name="typeMappingVersion" value="1.2"/>
  <ns1:parameter name="wsdlPortType" value="SII4SOAPSoap"/>
  <ns1:parameter name="className" value="it.bancafideuram.sii.SII4SOAPSoapSkeleton"/>
  <ns1:parameter name="wsdlServicePort" value="SII4SOAPSoap"/>
  <ns1:parameter name="schemaQualified" value="http://bancafideuram.it/sii/"/>
  <ns1:parameter name="wsdlTargetNamespace" value="http://bancafideuram.it/sii/"/>
  <ns1:parameter name="wsdlServiceElement" value="SII4SOAP"/>  
  <ns1:endpointURL>http://localhost:8080/SIIDotNet4SOAP/SII4SOAP.asmx</ns1:endpointURL>
  <!-- <ns1:wsdlFile>/wsdl/SII4SOAPSoap.wsdl</ns1:wsdlFile> -->
</ns1:service>
 <ns1:transport name="http">
  <ns1:requestFlow>
   <ns1:handler type="URLMapper"/>
   <ns1:handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </ns1:requestFlow>
  <ns1:parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <ns1:parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <ns1:parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <ns1:parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <ns1:parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <ns1:parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </ns1:transport>
 <ns1:transport name="local">
  <ns1:responseFlow>
   <ns1:handler type="LocalResponder"/>
  </ns1:responseFlow>
 </ns1:transport>
</ns1:deployment>

我插入以下行的位置

<ns1:endpointURL>http://localhost:8080/SIIDotNet4SOAP/SII4SOAP.asmx</ns1:endpointURL>

修改了 wsdl 位置而不是 Web 服务的端点,因为当我尝试从 SoapUI 调用它时,我收到以下错误

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.NoService</faultcode>
         <faultstring>The AXIS engine Could not find a target service to invoke!  targetService is SII4SOAP.asmx</faultstring>
         <detail>
            <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">ATR24212</ns2:hostname>
         </detail>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

相反,当我将服务调用到 url http://localhost:8080/SIIDotNet4SOAP/SII4SOAP 时,响应正常。

有人可以帮我解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)