users@jaxb.java.net

Circular references in a wsdl?

From: Jeff Haynes <Jeffrey.Haynes_at_Sun.COM>
Date: Tue, 21 Apr 2009 14:30:29 -0500

When I try to generate Java classes, I get the following messages:

-------
 [wsimport] command line: wsimport -d
/home/jh149683/workspace/idm/tmp/client -extension -Xdebug -Xnocompile
-keep -verbose
idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/main.wsdl -p
com.sun.idm.rpc.sap.grc.ac53.websvc.provisionLog -b
/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/jaxbBindings.xml
 [wsimport] parsing WSDL...


 [wsimport] [DEBUG] Authorization file "/home/jh149683/.metro/auth" not
found. If the WSDL access needs Basic Authentication, please provide
authorization file with read access at /home/jh149683/.metro/auth or use
-Xauthfile to give the authorization file and on each line provide
authorization information using this format :
http[s]://user:password_at_host:port//<url-path>


 [wsimport] [WARNING] src-resolve: Cannot resolve the name
's0:ArrayOfApplicationLogDTO' to a(n) 'type definition' component.
 [wsimport] line 19 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl#types?schema2

 [wsimport] [WARNING] src-resolve: Cannot resolve the name
's1:ServiceStatusDTO' to a(n) 'type definition' component.
 [wsimport] line 25 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl#types?schema2

 [wsimport] [WARNING] src-resolve: Cannot resolve the name 's0:BaseDTO'
to a(n) 'type definition' component.
 [wsimport] line 38 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl#types?schema4

 [wsimport] org.xml.sax.SAXParseException: A class/interface with the
same name
"com.sun.idm.rpc.sap.grc.ac53.websvc.provisionLog.ArrayOfApplicationLogDTO"
is already in use. Use a class customization to resolve this conflict.
 [wsimport] at
com.sun.tools.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:116)
 [wsimport] at
com.sun.tools.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:77)
 [wsimport] at
com.sun.tools.xjc.generator.bean.ImplStructureStrategy$1.createClasses(ImplStructureStrategy.java:78)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassDef(BeanGenerator.java:402)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.getClazz(BeanGenerator.java:434)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:201)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:174)
 [wsimport] at
com.sun.tools.xjc.model.Model.generateCode(Model.java:286)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:251)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:134)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2245)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:187)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:133)
 [wsimport] at
com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:183)
 [wsimport] at
com.sun.tools.ws.ant.WsImport2.execute(WsImport2.java:672)
 [wsimport] at
com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:55)
 [wsimport] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 [wsimport] at org.apache.tools.ant.Task.perform(Task.java:364)
 [wsimport] at org.apache.tools.ant.Target.execute(Target.java:341)
 [wsimport] at org.apache.tools.ant.Target.performTasks(Target.java:369)
 [wsimport] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 [wsimport] at
org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 [wsimport] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 [wsimport] at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 [wsimport] at org.apache.tools.ant.Main.runBuild(Main.java:668)
 [wsimport] at org.apache.tools.ant.Main.startAnt(Main.java:187)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
 [wsimport] [ERROR] A class/interface with the same name
"com.sun.idm.rpc.sap.grc.ac53.websvc.provisionLog.ArrayOfApplicationLogDTO"
is already in use. Use a class customization to resolve this conflict.
 [wsimport] line 17 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl

 [wsimport] org.xml.sax.SAXParseException: (Relevant to above error)
another "ArrayOfApplicationLogDTO" is generated from here.
 [wsimport] at
com.sun.tools.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:119)
 [wsimport] at
com.sun.tools.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:77)
 [wsimport] at
com.sun.tools.xjc.generator.bean.ImplStructureStrategy$1.createClasses(ImplStructureStrategy.java:78)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassDef(BeanGenerator.java:402)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.getClazz(BeanGenerator.java:434)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:201)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:174)
 [wsimport] at
com.sun.tools.xjc.model.Model.generateCode(Model.java:286)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:251)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:134)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2245)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:187)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:133)
 [wsimport] at
com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:183)
 [wsimport] at
com.sun.tools.ws.ant.WsImport2.execute(WsImport2.java:672)
 [wsimport] at
com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:55)
 [wsimport] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 [wsimport] at org.apache.tools.ant.Task.perform(Task.java:364)
 [wsimport] at org.apache.tools.ant.Target.execute(Target.java:341)
 [wsimport] at org.apache.tools.ant.Target.performTasks(Target.java:369)
 [wsimport] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 [wsimport] at
org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 [wsimport] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 [wsimport] at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 [wsimport] at org.apache.tools.ant.Main.runBuild(Main.java:668)
 [wsimport] at org.apache.tools.ant.Main.startAnt(Main.java:187)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
 [wsimport] [ERROR] (Relevant to above error) another
"ArrayOfApplicationLogDTO" is generated from here.
 [wsimport] line 52 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl

 [wsimport] com.sun.istack.SAXParseException2: Two declarations cause a
collision in the ObjectFactory class.
 [wsimport] at
com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:82)
 [wsimport] at
com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:333)
 [wsimport] at
com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:59)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:542)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:234)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:174)
 [wsimport] at
com.sun.tools.xjc.model.Model.generateCode(Model.java:286)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:251)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:134)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2245)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:187)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:133)
 [wsimport] at
com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:183)
 [wsimport] at
com.sun.tools.ws.ant.WsImport2.execute(WsImport2.java:672)
 [wsimport] at
com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:55)
 [wsimport] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 [wsimport] at org.apache.tools.ant.Task.perform(Task.java:364)
 [wsimport] at org.apache.tools.ant.Target.execute(Target.java:341)
 [wsimport] at org.apache.tools.ant.Target.performTasks(Target.java:369)
 [wsimport] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 [wsimport] at
org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 [wsimport] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 [wsimport] at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 [wsimport] at org.apache.tools.ant.Main.runBuild(Main.java:668)
 [wsimport] at org.apache.tools.ant.Main.startAnt(Main.java:187)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
 [wsimport] [ERROR] Two declarations cause a collision in the
ObjectFactory class.
 [wsimport] line 52 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl

 [wsimport] com.sun.istack.SAXParseException2: (Related to above error)
This is the other declaration.
 [wsimport] at
com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:82)
 [wsimport] at
com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:335)
 [wsimport] at
com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:59)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:542)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:234)
 [wsimport] at
com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:174)
 [wsimport] at
com.sun.tools.xjc.model.Model.generateCode(Model.java:286)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:251)
 [wsimport] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:85)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:134)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2245)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:187)
 [wsimport] at
com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:133)
 [wsimport] at
com.sun.tools.ws.wscompile.WsimportTool.run(WsimportTool.java:183)
 [wsimport] at
com.sun.tools.ws.ant.WsImport2.execute(WsImport2.java:672)
 [wsimport] at
com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:55)
 [wsimport] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 [wsimport] at org.apache.tools.ant.Task.perform(Task.java:364)
 [wsimport] at org.apache.tools.ant.Target.execute(Target.java:341)
 [wsimport] at org.apache.tools.ant.Target.performTasks(Target.java:369)
 [wsimport] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 [wsimport] at
org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 [wsimport] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 [wsimport] at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 [wsimport] at org.apache.tools.ant.Main.runBuild(Main.java:668)
 [wsimport] at org.apache.tools.ant.Main.startAnt(Main.java:187)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
 [wsimport] at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
 [wsimport] [ERROR] (Related to above error) This is the other
declaration.
 [wsimport] line 17 of
file:/home/jh149683/workspace/idm/idm/client/wsdl/grc/5.3/SAPGRC_AC_IDM_PROVISIONINGLOG/porttypes/Config1_SAPGRC_AC_IDM_PROVISIONINGLOGVi_document.wsdl
-------

I have been trying for figure out the external customization file, but
have not found anything that works yet. Can someone please help? Any
tips or links would be appreciated.

Here is one section on the wsdl that causes problems:

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns0="urn:SAPGRC_AC_IDM_PROVISIONINGLOGVi"
targetNamespace="urn:SAPGRC_AC_IDM_PROVISIONINGLOGWsd/SAPGRC_AC_IDM_PROVISIONINGLOGVi/document"
xmlns:tns="urn:SAPGRC_AC_IDM_PROVISIONINGLOGWsd/SAPGRC_AC_IDM_PROVISIONINGLOGVi/document">
  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:com.virsa.ae.ejbutil"
xmlns:tns="urn:com.virsa.ae.ejbutil" elementFormDefault="qualified">
      <xs:complexType name="ServiceStatusDTO">
        <xs:sequence>
          <xs:element name="msgCode" type="xs:string" nillable="true"
minOccurs="0"/>
          <xs:element name="msgDesc" type="xs:string" nillable="true"
minOccurs="0"/>
          <xs:element name="msgType" type="xs:string" nillable="true"
minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:com.virsa.ae.ejbutil.provisionlog"
xmlns:tns="urn:com.virsa.ae.ejbutil.provisionlog"
elementFormDefault="qualified" xmlns:s0="urn:com.virsa.ae.dao.dto"
xmlns:s1="urn:com.virsa.ae.ejbutil">
      <xs:import namespace="urn:com.virsa.ae.dao.dto"/>
      <xs:import namespace="urn:com.virsa.ae.ejbutil"/>
      <xs:complexType name="ArrayOfApplicationLogDTO">
        <xs:sequence>
          <xs:element name="applicationLogDTO"
type="s0:ArrayOfApplicationLogDTO" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ProvisionLogResults">
        <xs:sequence>
          <xs:element name="provisionLog"
type="tns:ArrayOfApplicationLogDTO" nillable="true" minOccurs="0"/>
          <xs:element name="status" type="s1:ServiceStatusDTO"
nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
    ...

Thanks,

Jeff Haynes