我应该使用第三方公开的SOAP服务。我有2个基本问题:
Q1。 WSDL需要基本身份验证才能通过浏览器进行访问。现在,当我尝试使用wsgen/WSDL2JAVA/
客户端使用Eclipse Webservice
创建客户端jar时,我得到HTTP 401 unauthorised
。如果我在本地下载并保存WSDL然后使用axis's WSDL2JAVA
,我会得到
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: Error parsing WSDL
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:178)
at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'file:/C:/TEST/TOOLS/Authentication.wsdl'.: org.xml.sax.SAXParseException: The prefix "wsdl" for element "wsdl:definitions" is not bound.
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.readInTheWSDLFile(CodeGenerationEngine.java:320)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerationEngine.java:133)
... 2 more
Caused by: org.xml.sax.SAXParseException: The prefix "wsdl" for element "wsdl:definitions" is not bound.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
... 7 more
Q2。我们如何处理频繁更改的WSDL,我们是否每次都生成客户端jar并重新部署应用程序?
帮助我创建client.jar
的任何指示都会很棒。
答案 0 :(得分:0)
对于WSDL中的每个更改,您都应该重新部署client.jar。
我建议你这样做。
因此,无论何时WSDL中的更改,您都应该修改项目中的WSDL URL,然后构建两个jar项目来创建Client.jar。更好的做法是使用WSDL URL作为Client.jar内部或外部的可配置属性值来维护它。
希望这有帮助。
答案 1 :(得分:0)
在您的wsdl文件中,选中“&lt;”wsdl:definitions“&gt;” xmlns:wsdl属性的标记,如果缺少它将抛出错误:
“org.xml.sax.SAXParseException:元素”wsdl:definitions“的前缀”wsdl“未绑定”在您发布的错误摘要的第5行找到。
在下面的示例中,您将看到由xmlns(xml命名空间)属性定义的前缀:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns1="http://org.apache.axis2/xsd"
xmlns:ns="http://pojo.service.quickstart.samples"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
targetNamespace="http://pojo.service.quickstart.samples">
查看xml命名空间如何在此处工作: http://www.w3schools.com/xml/xml_namespaces.asp