OK, it appears the WADL is invalid, it has multiple 'resources'
container elements but according to
http://www.w3.org/Submission/wadl/wadl.xsd
there has to be only a single one.
Can they have a single 'resources' with other ones collapsed into it as
child resource elements ?
Cheers, Sergey
On 16/04/12 17:51, Sergey Beryozkin wrote:
Hi
Please see comments below:
On 16/04/12 09:13, Ismael Hasan Romero wrote:
Hello,
I am trying to compile the REST services from EPO using the
"wadl2java" command line utility (they can be found at
http://www.epo.org/searching/free/ops.html) .
I've downloaded this WADL document and going to experiment with it
After several fixes in the description files I finally got a cast
error from DocumentImpl to Node. This is the first time I compile a
rest web service, so I am a bit lost and I don't know where this error
may come from, so any help will be appreciated.
The options I am using are the following:
./wadl2java -V -wadlns http://ops.epo.org -p eposervices -d eporest/
-compile -classdir /tmp/eporest file:///tmp/ops.apache.wadl
The full trace of the error is the following:
WADLToJava Error: java.lang.ClassCastException:
com.sun.org.apache.xerces.internal.dom.DocumentImpl cannot be cast to
org.w3c.dom.Element
org.apache.cxf.tools.common.ToolException:
java.lang.ClassCastException:
com.sun.org.apache.xerces.internal.dom.DocumentImpl cannot be cast to
org.w3c.dom.Element
at
org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:84)
at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:65)
at org.apache.cxf.tools.wadlto.WADLToJava.run(WADLToJava.java:57)
at org.apache.cxf.tools.wadlto.WADLToJava.main(WADLToJava.java:99)
Caused by: java.lang.ClassCastException:
com.sun.org.apache.xerces.internal.dom.DocumentImpl cannot be cast to
org.w3c.dom.Element
at
org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceMethod(SourceGenerator.java:651)
at
org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeMethods(SourceGenerator.java:524)
at
org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.writeResourceClass(SourceGenerator.java:428)
at
org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateResourceClasses(SourceGenerator.java:255)
at
org.apache.cxf.jaxrs.ext.codegen.SourceGenerator.generateSource(SourceGenerator.java:222)
at
org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.processWadl(JAXRSContainer.java:153)
at
org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:67)
at
org.apache.cxf.tools.wadlto.jaxrs.JAXRSContainer.execute(JAXRSContainer.java:76)
... 4 more
I managed to get past this issue, the code generator needs a couple of
fixes to be able to better handle documents/schemas available at remote
locations, ex, the schema reference is "/2.6.2/schema/ops.xsd", same for
the base resource, but that is a minor issue, I'm seeing a long list of
types being generated:
INFO: Created classes: org.epo.register.Absno,
org.epo.register.Accepted, org.epo.register.ActionDate,
org.epo.register.Addition, org.epo.register.AdditionalInfo,
.....................
org.epo.exchange.UnlinkedIndexingCodeType, org.epo.exchange.UrlType,
org.epo.exchange.UsRightsType, org.epo.exchange.VidType
and then
java.lang.IllegalStateException: WADL resources element is missing
at
org.apache.cxf.tools.wadlto.jaxrs.SourceGenerator.generateResourceClasses(SourceGenerator.java:244)
though I set the wadlns to "http://wadl.dev.java.net/2009/02".
Looking into it though it will take me few days to sort it out as I'm
traveling during the next 2 days
Cheers, Sergey
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com