You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Håkan Dahl <ha...@gmail.com> on 2009/12/01 10:24:23 UTC
jax-ws-catalog and resolving schemas in jars that do xsd:include
I can't get schema resolution from a jar-file (using jax-ws-catalog as per
4.4 Catalog Facility in the JAX-WS 2.1 spec) to work when:
* The referenced schema in a jar makes xsd:include on another schema in the
jar (all schemas in a jar share the same namespace). Stacktrace below.
Shouldn't this be possible?
Note: xsd:import works but requires imported schema to be in another
namespace.
Projects look like:
common-types-domain1
META-INF/jax-ws-catalog.xml
schemas/domain1/domain1-schema1.xsd
schemas/domain1/domain1-schema2.xsd
wsdl-project-1
src\main\resources\schemas\GetX.xsd
src\main\resources\schemas\GetXService.wsdl
where the GetXService.wsdl imports GetX.xsd which imports
domain1-schema2.xsd like this:
GetX.xsd:
<xsd:import namespace="http://www.example.org/schemas/domain1"
schemaLocation="
http://www.example.org/schemas/domain1/domain1-schema2.xsd"/>
domain1-schema2.xsd:
<xsd:include schemaLocation="domain1-schema1.xsd"/>
common-types-domain1/META-INF/jax-ws-catalog.xml:
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="system">
<system systemId="
http://www.example.org/schemas/domain1/domain1-schema1.xsd"
uri="classpath:schemas/domain1/domain1-schema1.xsd"/>
<system systemId="
http://www.example.org/schemas/domain1/domain1-schema2.xsd"
uri="classpath:schemas/domain1/domain1-schema2.xsd"/>
</catalog>
results in:
Caused by: org.apache.cxf.tools.common.ToolException: Thrown by JAXB :
http://www.example.org/schemas/domain1/domain1-schema1.xsd
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error(JAXBBindErrorListener.java:34)
at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerImpl.java:285)
at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:90)
at
com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:402)
at
com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:301)
at
com.sun.tools.xjc.reader.internalizer.AbstractReferenceFinderImpl.startElement(AbstractReferenceFinderImpl.java:95)
at
org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.parseSchema(SchemaCompilerImpl.java:135)
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAXBDataBinding.java:253)
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:196)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:588)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:239)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:130)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:283)
at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:103)
at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:337)
... 20 more
Caused by: java.io.FileNotFoundException:
http://www.example.org/schemas/domain1/domain1-schema1.xsd
... 39 more
Re: jax-ws-catalog and resolving schemas in jars that do xsd:include
Posted by Håkan Dahl <ha...@gmail.com>.
I filed JIRA https://issues.apache.org/jira/browse/CXF-2571 and attached
test-projects.
I'm using CXF 2.1.8. Also tried 2.2.5 which fails with another stacktrace as
below.
Thanks,
/håkan
CXF 2.2.5 stacktrace:
Caused by: org.apache.maven.plugin.MojoExecutionException:
java.lang.NullPointerException
at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:482)
at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.execute(WSDL2JavaMojo.java:387)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
... 17 more
Caused by: org.apache.cxf.tools.common.ToolException:
java.lang.NullPointerException
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:279)
at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:479)
... 20 more
Caused by: java.lang.NullPointerException
at java.net.URI$Parser.parse(URI.java:3010)
at java.net.URI.<init>(URI.java:578)
at
com.sun.tools.xjc.reader.internalizer.AbstractReferenceFinderImpl.startElement(AbstractReferenceFinderImpl.java:91)
at
com.sun.istack.XMLStreamReaderToContentHandler.handleStartElement(XMLStreamReaderToContentHandler.java:264)
at
com.sun.istack.XMLStreamReaderToContentHandler.bridge(XMLStreamReaderToContentHandler.java:109)
at
com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:432)
at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.parseSchema(SchemaCompilerImpl.java:164)
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAXBDataBinding.java:407)
at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:313)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:576)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:228)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:128)
at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:271)
... 24 more
On Wed, Dec 2, 2009 at 11:26 PM, Daniel Kulp <dk...@apache.org> wrote:
>
> Is there any way you could create a small "hello world" type sample that
> demonstrates this? This SOUNDS like a bug. If you could attach a small
> test case to a JIRA, that would be a huge help.
>
> You also don't mention what version of CXF. The stack trace doesn't seem
> to
> line up with recent versions of CXF. Definitely try with 2.2.5.
>
> Dan
>
>
Re: jax-ws-catalog and resolving schemas in jars that do xsd:include
Posted by Daniel Kulp <dk...@apache.org>.
Is there any way you could create a small "hello world" type sample that
demonstrates this? This SOUNDS like a bug. If you could attach a small
test case to a JIRA, that would be a huge help.
You also don't mention what version of CXF. The stack trace doesn't seem to
line up with recent versions of CXF. Definitely try with 2.2.5.
Dan
On Tue December 1 2009 4:24:23 am Håkan Dahl wrote:
> I can't get schema resolution from a jar-file (using jax-ws-catalog as per
> 4.4 Catalog Facility in the JAX-WS 2.1 spec) to work when:
>
> * The referenced schema in a jar makes xsd:include on another schema in the
> jar (all schemas in a jar share the same namespace). Stacktrace below.
>
> Shouldn't this be possible?
>
> Note: xsd:import works but requires imported schema to be in another
> namespace.
>
>
> Projects look like:
>
> common-types-domain1
> META-INF/jax-ws-catalog.xml
> schemas/domain1/domain1-schema1.xsd
> schemas/domain1/domain1-schema2.xsd
>
> wsdl-project-1
> src\main\resources\schemas\GetX.xsd
> src\main\resources\schemas\GetXService.wsdl
>
> where the GetXService.wsdl imports GetX.xsd which imports
> domain1-schema2.xsd like this:
>
>
> GetX.xsd:
>
> <xsd:import namespace="http://www.example.org/schemas/domain1"
> schemaLocation="
> http://www.example.org/schemas/domain1/domain1-schema2.xsd"/>
>
> domain1-schema2.xsd:
>
> <xsd:include schemaLocation="domain1-schema1.xsd"/>
>
> common-types-domain1/META-INF/jax-ws-catalog.xml:
>
> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
> prefer="system">
> <system systemId="
> http://www.example.org/schemas/domain1/domain1-schema1.xsd"
> uri="classpath:schemas/domain1/domain1-schema1.xsd"/>
> <system systemId="
> http://www.example.org/schemas/domain1/domain1-schema2.xsd"
> uri="classpath:schemas/domain1/domain1-schema2.xsd"/>
> </catalog>
>
> results in:
>
> Caused by: org.apache.cxf.tools.common.ToolException: Thrown by JAXB :
> http://www.example.org/schemas/domain1/domain1-schema1.xsd
> at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error(JA
> XBBindErrorListener.java:34) at
> com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerImpl.
> java:285) at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:90)
> at
> com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:402)
> at
> com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:301)
> at
> com.sun.tools.xjc.reader.internalizer.AbstractReferenceFinderImpl.startElem
> ent(AbstractReferenceFinderImpl.java:95) at
> org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
> at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
> at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
> at
> com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.parseSchema(SchemaCompile
> rImpl.java:135) at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAX
> BDataBinding.java:253) at
> org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAX
> BDataBinding.java:196) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaCon
> tainer.java:588) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaConta
> iner.java:239) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
> .java:130) at
> org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer
> .java:283) at
> org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
> at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:103)
> at
> org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:33
> 7) ... 20 more
> Caused by: java.io.FileNotFoundException:
> http://www.example.org/schemas/domain1/domain1-schema1.xsd
> ... 39 more
>
--
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog