当我尝试从部署到WebSphere 7.0 的类中调用 WebService(HP 服务管理器,如果有帮助的话)时出现错误。当我从 JUnit 代码调用它时,相同的代码功能......
WSDL 的片段是:
<definitions targetNamespace="http://schemas.hp.com/SM/7"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://schemas.xmlsoap.org/wsdl/">
我认为xmlns:xsi
XML 解析器总是知道的,所以我不明白那个错误。为什么在 WebSphere 上会出现这样的错误,而在 JUnit 中使用启动代码时不会出现这种错误com.ibm.ws.webservices.thinclient
?
适当的 StackTrace 片段是:
引起:javax.wsdl.WSDLException:WSDLException:faultCode=PARSER_ERROR:解析 'wsjar:file:/path/to/ear.ear/war.war/WEB-INF/lib/my_jar-0.0.1-SNAPSHOT.jar 的问题!/wsdl/myWsdl.wsdl'.: org.xml.sax.SAXParseException: Das Präfix "xsi" für Attribut "xsi:schemaLocation", das einem Elementtyp "definitions" zugeordnet ist, ist nicht gebunden。在 com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2255) 在 com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2330) 在 com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL (WSDLReaderImpl.java:2296) 在 org.apache.axis2.jaxws.util.WSDL4JWrapper$13.run(WSDL4JWrapper.java:745) 在 org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:132)在 org.apache.axis2.jaxws.util.WSDL4JWrapper。loadDefinition(WSDL4JWrapper.java:742) ... 51 更多原因:org.xml.sax.SAXParseException: Das Präfix "xsi" für Attribut "xsi:schemaLocation", das einem Elementtyp "definitions" zugeordnet ist, ist nicht gebunden。在 org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 在 org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 在 com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2245 ) ... 56 更多