js wsimport проблема с wsdl (jax-ws) - PullRequest
1 голос
/ 25 мая 2011

Может кто-нибудь помочь мне, что не так с файлом 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 Ответ

3 голосов
/ 24 июня 2011

Вы можете спокойно игнорировать предупреждения.Я делаю то же самое для моих 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>
...