java - wsdl2java Two classes have the same XML type name "{http://***.***.***.***/***/***/***}objectFactory" -
this problem occur in newer version of servicemix(tested on 5.4 - cxf 3.0.2 , 5.3 - cxf 2.7.11) in older version 4.5.2 cxf 2.6.8 works, webservices created.
in our project have lot of different webservices generated maven plugin wsdl2java in diffrent bundles. in servicemix 5.4 webservices down due errors, strange in previous servicemix 5.3 1 of bundle able start without modification in project.
in maven tried use additional extraarg:
<extraarg>-autonameresolution</extraarg> <extraarg>-xjc-npa</extraarg> but without result
stacktrace:
unable start blueprint container bundle bundle-name1 org.osgi.service.blueprint.container.componentdefinitionexception: unable initialize bean .camelblueprint.factory.camelcontext @ org.apache.aries.blueprint.container.beanrecipe.runbeanprocinit(beanrecipe.java:714)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:824)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[19:org.apache.aries.blueprint.core:1.4.1] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_21] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_21] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintrepository.createinstances(blueprintrepository.java:245)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintrepository.createinstance(blueprintrepository.java:230)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintrepository.create(blueprintrepository.java:145)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.getcomponentinstance(blueprintcontainerimpl.java:753)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.camel.blueprint.handler.camelnamespacehandler$cameldependenciesfinder.process(camelnamespacehandler.java:863)[105:org.apache.camel.camel-blueprint:2.13.2] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.processprocessors(blueprintcontainerimpl.java:528)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.dorun(blueprintcontainerimpl.java:361)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.run(blueprintcontainerimpl.java:269)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintextender.createcontainer(blueprintextender.java:276)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintextender.createcontainer(blueprintextender.java:245)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintextender.modifiedbundle(blueprintextender.java:235)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$tracked.customizermodified(bundlehookbundletracker.java:500)[14:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$tracked.customizermodified(bundlehookbundletracker.java:433)[14:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$abstracttracked.track(bundlehookbundletracker.java:725)[14:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$tracked.bundlechanged(bundlehookbundletracker.java:463)[14:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$bundleeventhook.event(bundlehookbundletracker.java:422)[14:org.apache.aries.util:1.1.0] @ org.apache.felix.framework.util.secureaction.invokebundleeventhook(secureaction.java:1127)[org.apache.felix.framework-4.4.1.jar:] @ org.apache.felix.framework.util.eventdispatcher.createwhitelistfromhooks(eventdispatcher.java:696)[org.apache.felix.framework-4.4.1.jar:] @ org.apache.felix.framework.util.eventdispatcher.firebundleevent(eventdispatcher.java:484)[org.apache.felix.framework-4.4.1.jar:] @ org.apache.felix.framework.felix.firebundleevent(felix.java:4429)[org.apache.felix.framework-4.4.1.jar:] @ org.apache.felix.framework.felix.startbundle(felix.java:2100)[org.apache.felix.framework-4.4.1.jar:] @ org.apache.felix.framework.felix.setactivestartlevel(felix.java:1299)[org.apache.felix.framework-4.4.1.jar:] @ org.apache.felix.framework.frameworkstartlevelimpl.run(frameworkstartlevelimpl.java:304)[org.apache.felix.framework-4.4.1.jar:] @ java.lang.thread.run(thread.java:722)[:1.7.0_21] caused by: org.apache.camel.nosuchbeanexception: cannot lookup: routebuilder registry: org.apache.camel.blueprint.blueprintcontainerregistry@597012f0 expected type: interface org.apache.camel.routesbuilder due: error when instantiating bean ****cxfclient of class ***.***.***.***.***.***.***.*** @ org.apache.camel.impl.compositeregistry.lookupbynameandtype(compositeregistry.java:62) @ org.apache.camel.impl.propertyplaceholderdelegateregistry.lookupbynameandtype(propertyplaceholderdelegateregistry.java:63) @ org.apache.camel.util.camelcontexthelper.lookup(camelcontexthelper.java:129) @ org.apache.camel.model.routebuilderdefinition.createroutes(routebuilderdefinition.java:70) @ org.apache.camel.core.xml.abstractcamelcontextfactorybean.installroutes(abstractcamelcontextfactorybean.java:750) @ org.apache.camel.core.xml.abstractcamelcontextfactorybean.setuproutes(abstractcamelcontextfactorybean.java:311) @ org.apache.camel.blueprint.camelcontextfactorybean.afterpropertiesset(camelcontextfactorybean.java:304) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)[:1.7.0_21] @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)[:1.7.0_21] @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)[:1.7.0_21] @ java.lang.reflect.method.invoke(method.java:601)[:1.7.0_21] @ org.apache.aries.blueprint.utils.reflectionutils.invoke(reflectionutils.java:297)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.invoke(beanrecipe.java:958)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.runbeanprocinit(beanrecipe.java:712)[19:org.apache.aries.blueprint.core:1.4.1] ... 30 more caused by: org.osgi.service.blueprint.container.componentdefinitionexception: error when instantiating bean ****cxfclient of class ***.***.***.***.***.***.***.*** @ org.apache.aries.blueprint.container.beanrecipe.getinstance(beanrecipe.java:300)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:806)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[19:org.apache.aries.blueprint.core:1.4.1] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_21] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_21] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.refrecipe.internalcreate(refrecipe.java:62)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:106)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.getinstance(beanrecipe.java:268)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:806)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[19:org.apache.aries.blueprint.core:1.4.1] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_21] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_21] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.refrecipe.internalcreate(refrecipe.java:62)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:106)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.setproperty(beanrecipe.java:933)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.setproperties(beanrecipe.java:907)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.setproperties(beanrecipe.java:888)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:820)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[19:org.apache.aries.blueprint.core:1.4.1] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_21] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_21] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintrepository.createinstances(blueprintrepository.java:245)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintrepository.createinstance(blueprintrepository.java:230)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintrepository.create(blueprintrepository.java:145)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.getcomponentinstance(blueprintcontainerimpl.java:753)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.camel.blueprint.blueprintcontainerregistry.lookupbynameandtype(blueprintcontainerregistry.java:54) @ org.apache.camel.impl.compositeregistry.lookupbynameandtype(compositeregistry.java:56) ... 43 more caused by: org.apache.cxf.service.factory.serviceconstructionexception @ org.apache.cxf.jaxb.jaxbdatabinding.initialize(jaxbdatabinding.java:341) @ org.apache.cxf.service.factory.abstractservicefactorybean.initializedatabindings(abstractservicefactorybean.java:86) @ org.apache.cxf.service.factory.reflectionservicefactorybean.buildservicefromclass(reflectionservicefactorybean.java:490) @ org.apache.cxf.jaxws.support.jaxwsservicefactorybean.buildservicefromclass(jaxwsservicefactorybean.java:704) @ org.apache.cxf.service.factory.reflectionservicefactorybean.initializeservicemodel(reflectionservicefactorybean.java:550) @ org.apache.cxf.service.factory.reflectionservicefactorybean.create(reflectionservicefactorybean.java:265) @ org.apache.cxf.jaxws.support.jaxwsservicefactorybean.create(jaxwsservicefactorybean.java:215) @ org.apache.cxf.frontend.abstractwsdlbasedendpointfactory.createendpoint(abstractwsdlbasedendpointfactory.java:102) @ org.apache.cxf.frontend.clientfactorybean.create(clientfactorybean.java:91) @ org.apache.cxf.frontend.clientproxyfactorybean.create(clientproxyfactorybean.java:157) @ org.apache.cxf.jaxws.jaxwsproxyfactorybean.create(jaxwsproxyfactorybean.java:142) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)[:1.7.0_21] @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)[:1.7.0_21] @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)[:1.7.0_21] @ java.lang.reflect.method.invoke(method.java:601)[:1.7.0_21] @ org.apache.aries.blueprint.utils.reflectionutils.invoke(reflectionutils.java:297)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.invoke(beanrecipe.java:958)[19:org.apache.aries.blueprint.core:1.4.1] @ org.apache.aries.blueprint.container.beanrecipe.getinstance(beanrecipe.java:298)[19:org.apache.aries.blueprint.core:1.4.1] ... 75 more caused by: com.sun.xml.bind.v2.runtime.illegalannotationsexception: 2 counts of illegalannotationexceptions 2 classes have same xml type name "{http://***.***.***.***/***/***/***}objectfactory". use @xmltype.name , @xmltype.namespace assign different names them. problem related following location: @ ***.***.***.***.***.***.***.objectfactory problem related following location: @ 1***.1***.1***.1***.1***.1***.1***.objectfactory 2 classes have same xml type name "{http://***.***.***.***/***/***/***}objectfactory". use @xmltype.name , @xmltype.namespace assign different names them. problem related following location: @ ***.***.***.***.***.***.***.objectfactory problem related following location: @ 1***.1***.1***.1***.1***.objectfactory @ com.sun.xml.bind.v2.runtime.illegalannotationsexception$builder.check(illegalannotationsexception.java:102) @ com.sun.xml.bind.v2.runtime.jaxbcontextimpl.gettypeinfoset(jaxbcontextimpl.java:472) @ com.sun.xml.bind.v2.runtime.jaxbcontextimpl.<init>(jaxbcontextimpl.java:302) @ com.sun.xml.bind.v2.runtime.jaxbcontextimpl$jaxbcontextbuilder.build(jaxbcontextimpl.java:1140) @ com.sun.xml.bind.v2.contextfactory.createcontext(contextfactory.java:154) @ com.sun.xml.bind.v2.contextfactory.createcontext(contextfactory.java:121) @ sun.reflect.generatedmethodaccessor70.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)[:1.7.0_21] @ java.lang.reflect.method.invoke(method.java:601)[:1.7.0_21] @ javax.xml.bind.contextfinder.newinstance(contextfinder.java:222)[:2.4.0] @ javax.xml.bind.contextfinder.find(contextfinder.java:396)[:2.4.0] @ javax.xml.bind.jaxbcontext.newinstance(jaxbcontext.java:656)[:2.4.0] @ org.apache.cxf.common.jaxb.jaxbcontextcache$2.run(jaxbcontextcache.java:345) @ org.apache.cxf.common.jaxb.jaxbcontextcache$2.run(jaxbcontextcache.java:343) @ java.security.accesscontroller.doprivileged(native method)[:1.7.0_21] @ org.apache.cxf.common.jaxb.jaxbcontextcache.createcontext(jaxbcontextcache.java:343) @ org.apache.cxf.common.jaxb.jaxbcontextcache.getcachedcontextandschemas(jaxbcontextcache.java:244) @ org.apache.cxf.jaxb.jaxbdatabinding.createjaxbcontextandschemas(jaxbdatabinding.java:484) @ org.apache.cxf.jaxb.jaxbdatabinding.initialize(jaxbdatabinding.java:339) ... 92 more edit
i tried downgrade cxf 2.6.8 same errors so, suppose problem somewhere else maybe in org.apache.aries.blueprint.core.
edit 2
i tried create 1 big bundle generated classes problem same
in case generate ws-client code via cxf-codegen-plugin, separate package names of ws-client bundles/parts specific configuration. achieved similar in 1 of projects so:
... <plugin> <groupid>org.apache.cxf</groupid> <artifactid>cxf-codegen-plugin</artifactid> <version>${cxf.version}</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <sourceroot>${basedir}/src/main/gen</sourceroot> <wsdloptions> <wsdloption> <wsdl>${basedir}/src/main/resources/mywsendpoint1.wsdl</wsdl> <extraargs> <extraarg>-client</extraarg> <!-- <extraarg>-validate</extraarg> --> <extraarg>-p</extraarg> <extraarg>com.acme.ws.jaxb.ns1</extraarg> <extraarg>-wsdllocation</extraarg> <extraarg></extraarg> </extraargs> </wsdloption> <wsdloption> <wsdl>${basedir}/src/main/resources/mywsendpoint2.wsdl</wsdl> <extraargs> <extraarg>-client</extraarg> <!-- <extraarg>-validate</extraarg> --> <extraarg>-p</extraarg> <extraarg>com.acme.ws.jaxb.ns2</extraarg> <extraarg>-wsdllocation</extraarg> <extraarg></extraarg> </extraargs> </wsdloption> </wsdloptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> ... thus, "individual" packages each ws-client specific {http://***.***.***.***/***/***/***}objectfactory should generated might avoid conflicts during code generation phase. thereby, @ runtime, no namespace-related issues should blocking you.
keep in mind com.acme.ws.jaxb.ns1 , com.acme.ws.jaxb.ns2 suggestions , use whatever seems valid project there.
-p [ wsdl-namespace= ] packagename
specifies zero, or more, package names use generated code. optionally > specifies wsdl namespace package name mapping.
comments welcome.
Comments
Post a Comment