wsdl(jax-ws)的java wsimport问题

时间:2011-05-25 06:49:59

标签: java jax-ws wsimport

有人可以帮我解决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的真实路径。 我可以通过电子邮件或其他私人信息发送给您。

1 个答案:

答案 0 :(得分:3)

您可以安全地忽略警告。我正在为我的WSDL做同样的事情,因为生成的存根包含我需要的东西。

关于Error它清楚地说明了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>