我正在尝试在我公司其他组提供给我的WSDL文件上运行wsdl2java命令。我知道wsdl2java有效,因为我可以运行这些示例,但是当我在给我的wsdl上尝试它时,它失败了。一个很大的区别是给我的WSDL使用SSL。
我正在使用Java 1.4(检查了几次)并确保所有正确的jar都在我的类路径中,jsse.jar就在那里。
命令:java org.apache.axis.wsdl.WSDL2Java --server-side GenericWebService.wsdl
ERROR:
log4j:WARN找不到logger(org.apache.axis.i18n.ProjectResourceBundle)的appender。 log4j:WARN请正确初始化log4j系统。 ** java.io.IOException:发射器故障。服务中的端口AC_x0020_Generic_x0020_Web_0020_ServiceSoap中的端点地址无效AC_x0020_Generic_x0020_Web_x0020_ServiceLocator:** at org.apache.axis.wsdl.toJava.JavaServiceImplWriter.writeFileBody(JavaServiceImplWriter.ja 一:242) 在org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:127) 在org.apache.axis.wsdl.toJava.JavaServiceWriter.generate(JavaServiceWriter.java:112) at org.apache.axis.wsdl.toJava.JavaGeneratorFactory $ Writers.generate(JavaGeneratorFactory.j) VA:421) 在org.apache.axis.wsdl.gen.Parser.generate(Parser.java:476) 在org.apache.axis.wsdl.gen.Parser.access $ 000(Parser.java:45) 在org.apache.axis.wsdl.gen.Parser $ WSDLRunnable.run(Parser.java:362) 在java.lang.Thread.run(Thread.java:534)
ASDF
<wsdl:portType name="AC_x0020_Generic_x0020_Web_x0020_ServiceSoap">
<wsdl:operation name="Provision">
<wsdl:input message="tns:ProvisionSoapIn" />
<wsdl:output message="tns:ProvisionSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AC_x0020_Generic_x0020_Web_x0020_ServiceSoap" type="tns:AC_x0020_Generic_x0020_Web_x0020_ServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="Provision">
<soap:operation soapAction="http://xmlns.fmr.com/systems/dev/aar/2008/05/GenericWebService/Provision" style="document" />
<wsdl:input>
<soap:body use="literal" />
<soap:header message="tns:ProvisionServiceProcessingDirectives" part="ServiceProcessingDirectives" use="literal" />
<soap:header message="tns:ProvisionServiceCallContext" part="ServiceCallContext" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AC_x0020_Generic_x0020_Web_x0020_Service">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Generic web service definition for provisioning requests callable by AccessCENTRAL</wsdl:documentation>
<wsdl:port name="AC_x0020_Generic_x0020_Web_x0020_ServiceSoap" binding="tns:AC_x0020_Generic_x0020_Web_x0020_ServiceSoap">
<soap:address location="" />
</wsdl:port>
</wsdl:service>
更新的解决方案: 问题是解析器需要&lt; soap:address location =“”/&gt;中的值。它完成。我添加了我的服务的URL,但它确实有效 New Lines看起来像:
<soap:address location="" http://localhost:8080/axis/services/AC_x0020_Generic_x0020_Web_x0020_Service" />
答案 0 :(得分:2)
soap:地址指定的位置为空。它应该是SOAP服务的URI。请参阅soap:address。
查看soapAction, http://xmlns.fmr.com/systems/dev/aar/2008/05/GenericWebService 可能是正确的位置值。