【问题标题】:Apache Cxf Wsdl2java Create Web Service Client Encoding ErrorApache Cxf Wsdl2java 创建 Web 服务客户端编码错误
【发布时间】:2012-11-29 09:23:44
【问题描述】:

我尝试创建 Web 服务客户端,然后我看到该编码错误。

我更改了eclipse编码属性、JVM编码属性和文件编码属性并设置了UTF-8,但这并没有改变任何东西!

    WSDLToJava Error: Schema Error : s4s-att-invalid-value: Invalid attribute value for 'attributeFormDefault' in element 'schema'. Recorded reason: cvc-enumeration-valid: Value 'unqualıfıed' is not facet-valid with respect to enumeration '(qualified | unqualified)'. It must be a value from the enumeration.

org.apache.cxf.tools.common.ToolException: Schema Error : s4s-att-invalid-value: Invalid attribute value for 'attributeFormDefault' in element 'schema'. Recorded reason: cvc-enumeration-valid: Value 'unqualıfıed' is not facet-valid with respect to enumeration '(qualified | unqualified)'. It must be a value from the enumeration.
    at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.validateSchema(JAXBDataBinding.java:911)
    at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAXBDataBinding.java:588)
    at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:391)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:589)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:242)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:139)
    at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:286)
    at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
    at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
    at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
    at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184)
Caused by: org.xml.sax.SAXParseException: s4s-att-invalid-value: Invalid attribute value for 'attributeFormDefault' in element 'schema'. Recorded reason: cvc-enumeration-valid: Value 'unqualıfıed' is not facet-valid with respect to enumeration '(qualified | unqualified)'. It must be a value from the enumeration.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSAttributeChecker.reportSchemaError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSAttributeChecker.checkAttributes(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSAttributeChecker.checkAttributes(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDocumentInfo.<init>(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.constructTrees(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(Unknown Source)
    at javax.xml.validation.SchemaFactory.newSchema(Unknown Source)
    at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.validateSchema(JAXBDataBinding.java:906)
    ... 10 more

谢谢。

【问题讨论】:

  • 为什么你认为是编码错误?
  • 因为,当我创建 wsdl 和 schema 时,xsd 文件中的 attributeFormDefault attr 值看起来像“unqualfıed”。这不是编码问题吗?
  • 您是否在控制您尝试解析的 WSDL?
  • 我用soap UI测试过soapclient.com wsdl是正确的。
  • 那么,你能改变 WSDL 吗?

标签: web-services wsdl cxf wsdl2java


【解决方案1】:
  • 从 wsdl 中删除 attributeFormDefault="unqualified" elementFormDefault="unqualified"
  • 更改您的所有区域设置美国/王国
  • 当您导入 WSDL 时,从 Apache CXF 向导中选择 Develop Client

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    相关资源
    最近更新 更多