【问题标题】:java wsimport problem with wsdl (jax-ws)wsdl(jax-ws)的java wsimport问题
【发布时间】:2011-05-25 06:49:58
【问题描述】:

有人可以帮我看看 WSDL 文件有什么问题吗?

wsimport -d test uri_to_my_wsdl
parsing WSDL...


[WARNING] src-resolve: Cannot resolve the name 'ns1:HeaderType' to a(n) 'type definition' component.
  line 27 of uri_to_my_wsdl=anotherWS.wsdl#types?schema2

[ERROR] A class/interface with the same name "some_pkg.ObjectFactory" is already in use. Use a class customization to resolve this conflict.


[ERROR] (Relevant to above error) another "ObjectFactory" is generated from here.
  line 72 of uri_to_my_wsdl=anotherWS.wsdl

Exception in thread "main" java.lang.NullPointerException
    at com.sun.tools.internal.xjc.util.Util.equals(Util.java:56)
    at com.sun.tools.internal.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:119)
    at com.sun.tools.internal.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:66)
    at com.sun.tools.internal.xjc.generator.bean.ImplStructureStrategy$1.createClasses(ImplStructureStrategy.java:67)
    at com.sun.tools.internal.xjc.generator.bean.BeanGenerator.generateClassDef(BeanGenerator.java:392)
    at com.sun.tools.internal.xjc.generator.bean.BeanGenerator.getClazz(BeanGenerator.java:424)
    at com.sun.tools.internal.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:191)
    at com.sun.tools.internal.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:164)
    at com.sun.tools.internal.xjc.model.Model.generateCode(Model.java:275)
    at com.sun.tools.internal.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:240)
    at com.sun.tools.internal.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:74)
    at com.sun.tools.internal.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:123)
    at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2234)
    at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:176)
    at com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:122)
    at com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:172)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:111)
    at com.sun.tools.internal.ws.WsImport.main(WsImport.java:41)

因为 WS 不是公开的,我不能在这里发布到 WSDL 的真实路径。 我可以通过电子邮件或其他私信发送给您。

【问题讨论】:

    标签: java jax-ws wsimport


    【解决方案1】:

    您可以放心地忽略这些警告。我正在为我的 WSDL 做同样的事情,因为生成的存根包含我需要的内容。

    关于错误,它清楚地表明 WSDL 中有一个重复的 ObjectFactory。 请使用类似于下面的架构自定义方案。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <bindings 
    xmlns="http://java.sun.com/xml/ns/jaxb"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    version="2.0">    
      <bindings schemaLocation="my.xsd" node="/xsd:schema">
         <bindings node="xsd:complexType[@name='MyObject']">
                <jaxb:property name="MyObjectNewName"/> 
         </bindings>
      </bindings>
    </bindings>
    

    【讨论】:

    • 我在您的第一篇文章中指的是“[WARNING] src-resolve:”。对于我提到的错误,您已经多次定义了“ObjectFactory”。
    • 好的。同意。但是我能对“ObjectFactory”做些什么呢?我知道有某种 jaxb 映射文件,但我还没有找到如何编写它。一些例子?
    • 已编辑我的答案以添加自定义详细信息。在生成存根时,您必须使用 -b 选项来包含它。
    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    相关资源
    最近更新 更多