【发布时间】:2015-01-23 08:54:55
【问题描述】:
我正在尝试使用用于 wsdl 的 apache-cxf wsdl2java 工具生成 java 服务代码:
https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl
MBA-Anton:bin asmirnov$ ./wsdl2java “https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl” 25.11.2014 16:16:49 org.apache.cxf.configuration.jsse.SSLUtils getDefaultKeyStoreManagers 警告:默认密钥管理器不能 初始化:/Users/asmirnov/.keystore(没有这样的文件或目录) [致命错误]寻址:2:2:文档中的标记如下 根元素必须格式正确。
WSDLToJava 错误:org.apache.cxf.wsdl11.WSDLRuntimeException:失败 创建 wsdl 定义 https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl: WSDLException(在 /wsdl:definitions/wsdl:types/xs:schema/xs:schema): faultCode=PARSER_ERROR: 解析问题 'http://schemas.xmlsoap.org/ws/2004/08/addressing'.: org.xml.sax.SAXParseException:文档中的标记如下 根元素必须格式正确。
为什么它试图创建 wsdl 定义而不是生成 java 代码?我该如何解决?
详细日志:
MBA-Anton:bin asmirnov$ ./wsdl2java -V “https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl” 正在加载前端 jaxws ... 正在加载 DataBinding jaxb ... wsdl2java -V https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl wsdl2java - Apache CXF 2.7.13
25.11.2014 16:18:39 org.apache.cxf.configuration.jsse.SSLUtils getDefaultKeyStoreManagers 警告:默认密钥管理器不能 初始化:/Users/asmirnov/.keystore(没有这样的文件或目录) [致命错误]寻址:2:2:文档中的标记如下 根元素必须格式正确。
WSDLToJava 错误:org.apache.cxf.wsdl11.WSDLRuntimeException:失败 创建 wsdl 定义 https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl: WSDLException(在 /wsdl:definitions/wsdl:types/xs:schema/xs:schema): faultCode=PARSER_ERROR: 解析问题 'http://schemas.xmlsoap.org/ws/2004/08/addressing'.: org.xml.sax.SAXParseException:文档中的标记如下 根元素必须格式正确。
org.apache.cxf.tools.common.ToolException: org.apache.cxf.wsdl11.WSDLRuntimeException:创建 wsdl 失败 定义 https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl: WSDLException(在 /wsdl:definitions/wsdl:types/xs:schema/xs:schema): faultCode=PARSER_ERROR: 解析问题 'http://schemas.xmlsoap.org/ws/2004/08/addressing'.: org.xml.sax.SAXParseException:文档中的标记如下 根元素必须格式正确。在 org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:420) 在 org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103) 在 org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113) 在 org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86) 在 org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184) 引起:org.apache.cxf.wsdl11.WSDLRuntimeException:创建失败 wsdl 定义 https://raw.githubusercontent.com/mpromonet/spring-onvif/master/src/main/resources/wsdl/remotediscovery.wsdl: WSDLException(在 /wsdl:definitions/wsdl:types/xs:schema/xs:schema): faultCode=PARSER_ERROR: 解析问题 'http://schemas.xmlsoap.org/ws/2004/08/addressing'.: org.xml.sax.SAXParseException:文档中的标记如下 根元素必须格式正确。在 org.apache.cxf.wsdl11.WSDLDefinitionBuilder.parseWSDL(WSDLDefinitionBuilder.java:97) 在 org.apache.cxf.wsdl11.WSDLDefinitionBuilder.build(WSDLDefinitionBuilder.java:69) 在 org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:83) 在 org.apache.cxf.tools.wsdlto.frontend.jaxws.wsdl11.JAXWSDefinitionBuilder.build(JAXWSDefinitionBuilder.java:60) 在 org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:198) 在 org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:164) 在 org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:412) ... 4 更多原因:javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xs:schema/xs:schema): faultCode=PARSER_ERROR: 解析问题 'http://schemas.xmlsoap.org/ws/2004/08/addressing'.: org.xml.sax.SAXParseException:文档中的标记如下 根元素必须格式正确。在 com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2198) 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:830) 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:864) 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:654) 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(WSDLReaderImpl.java:610) 在 com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(WSDLReaderImpl.java:320) 在 com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2352) 在 com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2338) 在 org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:261) 在 org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:206) 在 org.apache.cxf.wsdl11.WSDLDefinitionBuilder.parseWSDL(WSDLDefinitionBuilder.java:78) ... 10 更多原因:org.xml.sax.SAXParseException: 中的标记 根元素之后的文档必须格式正确。在 com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) 在 com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:287) 在 com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2188) ... 20 更多
【问题讨论】:
标签: java web-services wsdl cxf