[
https://issues.apache.org/jira/browse/CXF-680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Freeman Fang resolved CXF-680.
------------------------------
Resolution: Fixed
> rest binding should support class without XmlRootElement
> --------------------------------------------------------
>
> Key: CXF-680
> URL: https://issues.apache.org/jira/browse/CXF-680
> Project: CXF
> Issue Type: Improvement
> Reporter: Freeman Fang
> Assigned To: Freeman Fang
>
> currently, we need provide class XmlRootElement annotation for rest binding,
> otherwise we will get exception like
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.ClassCastException:
> org.apache.ws.commons.schema.XmlSchemaComplexType
> at
> org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor.mergeParams(URIParameterInInterceptor.java:129)
> at
> org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor.handleMessage(URIParameterInInterceptor.java:105)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:147)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:63)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:220)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:180)
> at
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:54)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:690)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:285)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
> at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> The reason is without @XmlRootElement, schema generated from the java class
> is XmlSchemaComplexType, but currently what we expect is XmlSchemaElement
> we can see
> oc = IriDecoderHelper.buildDocument((XmlSchemaElement)part.getXmlSchema(),
> schemas,
> params);
> cause this exception, part.getXmlSchema() return XmlSchemaComplexType if
> without @XmlRootElement
> more details are in the mail
> Hiya
> I got the following exception when querying the following URL of a modified
> version of the restful_http_binding sample.
> <ns1:XMLFault>
> <ns1:faultstring>
> java.lang.ClassCastException :
> org.apache.ws.commons.schema.XmlSchemaComplexType
> </ns1:faultstring>
> </ns1:XMLFault>
> The only change I made between this faulty version and a working one is
> about the GetBook class that was rewriten and compiled in Groovy. The
> schema generated in now
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <xs:schema elementFormDefault="qualified" version=" 1.0" targetNamespace="
> http://book.acme.com" xmlns:xs=" http://www.w3.org/2001/XMLSchema">
> <xs:complexType name="getBook">
> <xs:sequence>
> <xs:element name="id" type="xs:long"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> instead of
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="
> http://book.acme.com" xmlns:tns="http://book.acme.com"
> xmlns:xs="http://www.w3.org/2001/XMLSchema
> ">
> <xs:element name="GetBook" type="tns:getBook"/>
> <xs:complexType name="getBook">
> <xs:sequence>
> <xs:element name="id" type="xs:long"/>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
> would these changes lead to that error ? My feeling is *no* since I did the
> same change for other classes and this did not cause the same exception.
> Thoughts ?
> Cheers
> Guillaume
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.