问题描述
嗨,我使用 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 (将#修改为@)