You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by ac...@toulouse.viveris.com on 2014/03/25 10:31:04 UTC
cxf 2.7.10 throw AbractMethodError using javax.ws.rs-api-2.0-m10
Hi everybody!!
Server is configured with cxf (2.7.6 or 2.7.10), Spring 3.2.3 and
jboss-as-7.2.
I encounter a problem using cxf and jaxb xsd validation. Here is the
service declaration :
<jaxrs:server id="services" address="/">
<jaxrs:serviceBeans>
<bean class="com.myCompany.ServiceInterface" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="JSONProvider" />
<ref bean="JAXBProvider" />
<ref bean="ExceptionHandler" />
</jaxrs:providers>
</jaxrs:server>
<bean id="ExceptionHandler"
class="com.myCompany.util.ExceptionHandler" />
<bean id="JSONProvider"
class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
<bean id="JAXBProvider"
class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="singleJaxbContext" value="true" />
<property name="marshallerProperties" ref="propertiesMap"/>
<property name="validateOutput" value="true" />
<property ref="schemaHolder" name="schemaHandler"/>
</bean>
<util:map id="propertiesMap">
<entry key="jaxb.formatted.output"><value
type="java.lang.Boolean">true</value></entry>
</util:map>
<bean id="schemaHolder"
class="org.apache.cxf.jaxrs.utils.schemas.SchemaHandler">
<property name="schemas" ref="XMLISchemas"/> <!-- XMLIschemas
contains the path of every xds to use -->
</bean>
XSD validation functionnality work perferctly in both way and my
erroneous payload (bad tag or bad value) are generating exception
outside of my service code. This is great, but I'd like to produce a
specific response to user in case of xsd validation exception. So I
introduced the ExceptionHandler bean and I figured out that thrown
exception was not the one expected (SAXParseException or
UnmarshalException) but an AbstractMethodError.
Here is the (full) stacktrace :
17:55:30,314 INFO [stdout] 24-03-14 16:55:30[WARN
][o.a.c.j.p.AbstractJAXBProvider][javax.xml.bind.UnmarshalException
17:55:30,320 INFO [stdout] - with linked exception:
17:55:30,321 INFO [stdout] [org.xml.sax.SAXParseException; lineNumber:
4; columnNumber: 4; cvc-complex-type.2.4.a: Invalid content was found
starting with element 'direct'. One of '{direction}' is expected.]
17:55:30,321 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:483)
17:55:30,321 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:417)
17:55:30,321 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:386)
17:55:30,322 INFO [stdout] at
org.apache.cxf.jaxrs.provider.JAXBElementProvider.unmarshalFromInputStream(JAXBElementProvider.java:272)
17:55:30,322 INFO [stdout] at
org.apache.cxf.jaxrs.provider.JAXBElementProvider.doUnmarshal(JAXBElementProvider.java:225)
17:55:30,322 INFO [stdout] at
org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:184)
17:55:30,322 INFO [stdout] at
org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1280)
17:55:30,322 INFO [stdout] at
org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1231)
17:55:30,323 INFO [stdout] at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:782)
17:55:30,323 INFO [stdout] at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:741)
17:55:30,323 INFO [stdout] at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:254)
17:55:30,323 INFO [stdout] at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:90)
17:55:30,324 INFO [stdout] at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
17:55:30,324 INFO [stdout] at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
17:55:30,324 INFO [stdout] at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
17:55:30,324 INFO [stdout] at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
17:55:30,324 INFO [stdout] at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
17:55:30,325 INFO [stdout] at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
17:55:30,325 INFO [stdout] at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
17:55:30,325 INFO [stdout] at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
17:55:30,325 INFO [stdout] at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
17:55:30,326 INFO [stdout] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
17:55:30,326 INFO [stdout] at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
17:55:30,326 INFO [stdout] at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
17:55:30,326 INFO [stdout] at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
17:55:30,326 INFO [stdout] at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
17:55:30,327 INFO [stdout] at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
17:55:30,327 INFO [stdout] at
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
17:55:30,327 INFO [stdout] at
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
17:55:30,327 INFO [stdout] at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
17:55:30,328 INFO [stdout] at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
17:55:30,328 INFO [stdout] at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
17:55:30,328 INFO [stdout] at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
17:55:30,328 INFO [stdout] at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
17:55:30,328 INFO [stdout] at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
17:55:30,329 INFO [stdout] at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
17:55:30,329 INFO [stdout] at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
17:55:30,329 INFO [stdout] at
java.lang.Thread.run(Thread.java:722)
17:55:30,329 INFO [stdout] Caused by: org.xml.sax.SAXParseException;
lineNumber: 4; columnNumber: 4; cvc-complex-type.2.4.a: Invalid content
was found starting with element 'direct'. One of '{direction}' is
expected.
17:55:30,330 INFO [stdout] at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
Source)
17:55:30,330 INFO [stdout] at
org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
17:55:30,330 INFO [stdout] at
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
17:55:30,330 INFO [stdout] at
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
17:55:30,330 INFO [stdout] at
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
17:55:30,331 INFO [stdout] at
org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown
Source)
17:55:30,331 INFO [stdout] at
org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown
Source)
17:55:30,331 INFO [stdout] at
org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown
Source)
17:55:30,331 INFO [stdout] at
org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown
Source)
17:55:30,331 INFO [stdout] at
org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.startElement(Unknown
Source)
17:55:30,332 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:101)
17:55:30,332 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:246)
17:55:30,332 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:180)
17:55:30,332 INFO [stdout] at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:415)
17:55:30,333 INFO [stdout] ... 36 more
17:55:30,334 ERROR
[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/server].[CXFServlet]]
JBWEB000236: Servlet.service() for servlet CXFServlet threw exception:
java.lang.AbstractMethodError:
javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;
at
javax.ws.rs.WebApplicationException.validate(WebApplicationException.java:186)
[javax.ws.rs-api-2.0-m10.jar:2.0-m10]
at
javax.ws.rs.ClientErrorException.<init>(ClientErrorException.java:127)
[javax.ws.rs-api-2.0-m10.jar:2.0-m10]
at
javax.ws.rs.BadRequestException.<init>(BadRequestException.java:92)
[javax.ws.rs-api-2.0-m10.jar:2.0-m10]
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleExceptionEnd(AbstractJAXBProvider.java:688)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleJAXBException(AbstractJAXBProvider.java:700)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:198)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1280)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1231)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:782)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:741)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:254)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:90)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
[cxf-api-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
[cxf-api-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
[jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
[cxf-rt-transports-http-2.7.10.jar:2.7.10]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
[jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at
org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
[jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
[jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
[jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at java.lang.Thread.run(Thread.java:722)
[rt.jar:1.7.0_09-icedtea]
I'd like to catch the SAXException or the unmarshallingException in
order to indicate the invalid message part to the sender.
It's look like a library mismatching, but I can't figure out which one.
Re: cxf 2.7.10 throw AbractMethodError using javax.ws.rs-api-2.0-m10
Posted by ac...@toulouse.viveris.com.
Thanks Sergey, you help me to find out the solution.
I finally choose to force jboss not to load its JAXRS 1.1 API, to do
so, you need to :
1/ remove the <extension module="org.jboss.as.jaxrs"/> from its
configuration (ie standalone.xml)
2/ remove all the javaee.api module linkage in the
jboss-deployment-structure.xml file in your web-application.
Here is my jboss-deployment-structure.xml file content :
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
<deployment>
<exclusions>
<!-- Exclude JAVA EE of JBOSS (javax.ws..) => Add dependency
javax.annotation -->
<module name="javaee.api" />
<!--
remove from jboss configuration standalone.xml the following
extension:
<extension module="org.jboss.as.jaxrs"/>
-->
</exclusions>
<dependencies>
<module name="org.codehaus.jackson.jackson-core-asl"/>
<module name="org.codehaus.jackson.jackson-mapper-asl"/>
<!-- Add javax.annotation.Ressource -->
<module name="javax.annotation.api" />
<module name="javax.xml.ws.api" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Le 25.03.2014 12:13, Sergey Beryozkin a écrit :
> Hi
>
> The relevant stack trace is here:
>
> CXFServlet threw exception: java.lang.AbstractMethodError:
>
> javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;
> at
>
> javax.ws.rs.WebApplicationException.validate(WebApplicationException.java:186)
> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
> at
>
> javax.ws.rs.ClientErrorException.<init>(ClientErrorException.java:127)
> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
> at
> javax.ws.rs.BadRequestException.<init>(BadRequestException.java:92)
> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
> at
>
> org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleExceptionEnd(AbstractJAXBProvider.java:688)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
>
> org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleJAXBException(AbstractJAXBProvider.java:700)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>
>
> As I said on #cxf, the problem is you have the container shipping
> JAXRS 1.1 API, CXF 2.7.10 - 2.0 (m10). WebApplicationException loaded
> from 1.1 API (by some root class loader) is linked with 2.0
> ClientErrorException which extends WebApplicationException, where
> ClientErrorException also calls a new private WebApplicationException
> method (added in 2.0).
>
> I recall you mentioned you needed 2.0 API in your own code.
> So the workaround, dropping 2.0 API dependency, when deploying into
> JBoss, given that CXF 2.7.10 is expected to completely support 1.1
> applications, will not work.
>
> So what I can recommend is to either temporarily avoid using 2.0 API
> in your code while you work with a given version of JBoss or find out
> how to prevent JBoss loading 1.1 API
>
> HTH, Sergey
>
>
>
> On 25/03/14 09:31, acollier@toulouse.viveris.com wrote:
>> Hi everybody!!
>>
>> Server is configured with cxf (2.7.6 or 2.7.10), Spring 3.2.3 and
>> jboss-as-7.2.
>> I encounter a problem using cxf and jaxb xsd validation. Here is the
>> service declaration :
>>
>> <jaxrs:server id="services" address="/">
>> <jaxrs:serviceBeans>
>> <bean class="com.myCompany.ServiceInterface" />
>> </jaxrs:serviceBeans>
>> <jaxrs:providers>
>> <ref bean="JSONProvider" />
>> <ref bean="JAXBProvider" />
>> <ref bean="ExceptionHandler" />
>> </jaxrs:providers>
>> </jaxrs:server>
>>
>> <bean id="ExceptionHandler"
>> class="com.myCompany.util.ExceptionHandler" />
>> <bean id="JSONProvider"
>> class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
>>
>> <bean id="JAXBProvider"
>> class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
>> <property name="singleJaxbContext" value="true" />
>> <property name="marshallerProperties" ref="propertiesMap"/>
>> <property name="validateOutput" value="true" />
>> <property ref="schemaHolder" name="schemaHandler"/>
>> </bean>
>>
>> <util:map id="propertiesMap">
>> <entry key="jaxb.formatted.output"><value
>> type="java.lang.Boolean">true</value></entry>
>> </util:map>
>>
>> <bean id="schemaHolder"
>> class="org.apache.cxf.jaxrs.utils.schemas.SchemaHandler">
>> <property name="schemas" ref="XMLISchemas"/> <!--
>> XMLIschemas
>> contains the path of every xds to use -->
>> </bean>
>>
>> XSD validation functionnality work perferctly in both way and my
>> erroneous payload (bad tag or bad value) are generating exception
>> outside of my service code. This is great, but I'd like to produce a
>> specific response to user in case of xsd validation exception. So I
>> introduced the ExceptionHandler bean and I figured out that thrown
>> exception was not the one expected (SAXParseException or
>> UnmarshalException) but an AbstractMethodError.
>> Here is the (full) stacktrace :
>>
>> 17:55:30,314 INFO [stdout] 24-03-14 16:55:30[WARN
>> ][o.a.c.j.p.AbstractJAXBProvider][javax.xml.bind.UnmarshalException
>> 17:55:30,320 INFO [stdout] - with linked exception:
>> 17:55:30,321 INFO [stdout] [org.xml.sax.SAXParseException;
>> lineNumber:
>> 4; columnNumber: 4; cvc-complex-type.2.4.a: Invalid content was
>> found
>> starting with element 'direct'. One of '{direction}' is expected.]
>> 17:55:30,321 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:483)
>>
>> 17:55:30,321 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:417)
>>
>> 17:55:30,321 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:386)
>>
>> 17:55:30,322 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.provider.JAXBElementProvider.unmarshalFromInputStream(JAXBElementProvider.java:272)
>>
>> 17:55:30,322 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.provider.JAXBElementProvider.doUnmarshal(JAXBElementProvider.java:225)
>>
>> 17:55:30,322 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:184)
>>
>> 17:55:30,322 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1280)
>>
>> 17:55:30,322 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1231)
>>
>> 17:55:30,323 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:782)
>> 17:55:30,323 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:741)
>>
>> 17:55:30,323 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:254)
>>
>> 17:55:30,323 INFO [stdout] at
>>
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:90)
>>
>> 17:55:30,324 INFO [stdout] at
>>
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
>>
>> 17:55:30,324 INFO [stdout] at
>>
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>>
>> 17:55:30,324 INFO [stdout] at
>>
>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
>>
>> 17:55:30,324 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
>>
>> 17:55:30,324 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
>>
>> 17:55:30,325 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
>>
>> 17:55:30,325 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
>>
>> 17:55:30,325 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>>
>> 17:55:30,325 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
>>
>> 17:55:30,326 INFO [stdout] at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
>> 17:55:30,326 INFO [stdout] at
>>
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>>
>> 17:55:30,326 INFO [stdout] at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
>>
>> 17:55:30,326 INFO [stdout] at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>>
>> 17:55:30,326 INFO [stdout] at
>>
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>>
>> 17:55:30,327 INFO [stdout] at
>>
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
>>
>> 17:55:30,327 INFO [stdout] at
>>
>> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>>
>> 17:55:30,327 INFO [stdout] at
>>
>> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>>
>> 17:55:30,327 INFO [stdout] at
>>
>> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
>>
>> 17:55:30,328 INFO [stdout] at
>>
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
>>
>> 17:55:30,328 INFO [stdout] at
>>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
>>
>> 17:55:30,328 INFO [stdout] at
>>
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
>>
>> 17:55:30,328 INFO [stdout] at
>>
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
>> 17:55:30,328 INFO [stdout] at
>>
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>> 17:55:30,329 INFO [stdout] at
>>
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
>>
>> 17:55:30,329 INFO [stdout] at
>>
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
>> 17:55:30,329 INFO [stdout] at
>> java.lang.Thread.run(Thread.java:722)
>> 17:55:30,329 INFO [stdout] Caused by:
>> org.xml.sax.SAXParseException;
>> lineNumber: 4; columnNumber: 4; cvc-complex-type.2.4.a: Invalid
>> content
>> was found starting with element 'direct'. One of '{direction}' is
>> expected.
>> 17:55:30,330 INFO [stdout] at
>>
>> org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
>> Source)
>> 17:55:30,330 INFO [stdout] at
>> org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
>> 17:55:30,330 INFO [stdout] at
>> org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
>> 17:55:30,330 INFO [stdout] at
>> org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
>> 17:55:30,330 INFO [stdout] at
>> org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
>> 17:55:30,331 INFO [stdout] at
>>
>> org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown
>> Source)
>> 17:55:30,331 INFO [stdout] at
>>
>> org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown
>> Source)
>> 17:55:30,331 INFO [stdout] at
>>
>> org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown
>> Source)
>> 17:55:30,331 INFO [stdout] at
>> org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown
>> Source)
>> 17:55:30,331 INFO [stdout] at
>>
>> org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.startElement(Unknown
>> Source)
>> 17:55:30,332 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:101)
>>
>> 17:55:30,332 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:246)
>>
>> 17:55:30,332 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:180)
>>
>> 17:55:30,332 INFO [stdout] at
>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:415)
>>
>> 17:55:30,333 INFO [stdout] ... 36 more
>> 17:55:30,334 ERROR
>>
>> [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/server].[CXFServlet]]
>> JBWEB000236: Servlet.service() for servlet CXFServlet threw
>> exception:
>> java.lang.AbstractMethodError:
>>
>> javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;
>>
>> at
>>
>> javax.ws.rs.WebApplicationException.validate(WebApplicationException.java:186)
>> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
>> at
>>
>> javax.ws.rs.ClientErrorException.<init>(ClientErrorException.java:127)
>> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
>> at
>> javax.ws.rs.BadRequestException.<init>(BadRequestException.java:92)
>> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
>> at
>>
>> org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleExceptionEnd(AbstractJAXBProvider.java:688)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleJAXBException(AbstractJAXBProvider.java:700)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:198)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1280)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1231)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:782)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:741)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:254)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:90)
>> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
>> [cxf-api-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>> [cxf-api-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
>>
>> [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
>> at
>>
>> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>> [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
>> at
>>
>> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>> [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
>> at
>>
>> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
>> [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
>> at
>>
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at
>>
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
>> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
>> at java.lang.Thread.run(Thread.java:722)
>> [rt.jar:1.7.0_09-icedtea]
>>
>> I'd like to catch the SAXException or the unmarshallingException in
>> order to indicate the invalid message part to the sender.
>> It's look like a library mismatching, but I can't figure out which
>> one.
>>
>>
Re: cxf 2.7.10 throw AbractMethodError using javax.ws.rs-api-2.0-m10
Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi
The relevant stack trace is here:
CXFServlet threw exception: java.lang.AbstractMethodError:
javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;
at
javax.ws.rs.WebApplicationException.validate(WebApplicationException.java:186)
[javax.ws.rs-api-2.0-m10.jar:2.0-m10]
at
javax.ws.rs.ClientErrorException.<init>(ClientErrorException.java:127)
[javax.ws.rs-api-2.0-m10.jar:2.0-m10]
at
javax.ws.rs.BadRequestException.<init>(BadRequestException.java:92)
[javax.ws.rs-api-2.0-m10.jar:2.0-m10]
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleExceptionEnd(AbstractJAXBProvider.java:688)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleJAXBException(AbstractJAXBProvider.java:700)
[cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
As I said on #cxf, the problem is you have the container shipping JAXRS
1.1 API, CXF 2.7.10 - 2.0 (m10). WebApplicationException loaded from 1.1
API (by some root class loader) is linked with 2.0 ClientErrorException
which extends WebApplicationException, where ClientErrorException also
calls a new private WebApplicationException method (added in 2.0).
I recall you mentioned you needed 2.0 API in your own code.
So the workaround, dropping 2.0 API dependency, when deploying into
JBoss, given that CXF 2.7.10 is expected to completely support 1.1
applications, will not work.
So what I can recommend is to either temporarily avoid using 2.0 API in
your code while you work with a given version of JBoss or find out how
to prevent JBoss loading 1.1 API
HTH, Sergey
On 25/03/14 09:31, acollier@toulouse.viveris.com wrote:
> Hi everybody!!
>
> Server is configured with cxf (2.7.6 or 2.7.10), Spring 3.2.3 and
> jboss-as-7.2.
> I encounter a problem using cxf and jaxb xsd validation. Here is the
> service declaration :
>
> <jaxrs:server id="services" address="/">
> <jaxrs:serviceBeans>
> <bean class="com.myCompany.ServiceInterface" />
> </jaxrs:serviceBeans>
> <jaxrs:providers>
> <ref bean="JSONProvider" />
> <ref bean="JAXBProvider" />
> <ref bean="ExceptionHandler" />
> </jaxrs:providers>
> </jaxrs:server>
>
> <bean id="ExceptionHandler"
> class="com.myCompany.util.ExceptionHandler" />
> <bean id="JSONProvider"
> class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
>
> <bean id="JAXBProvider"
> class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
> <property name="singleJaxbContext" value="true" />
> <property name="marshallerProperties" ref="propertiesMap"/>
> <property name="validateOutput" value="true" />
> <property ref="schemaHolder" name="schemaHandler"/>
> </bean>
>
> <util:map id="propertiesMap">
> <entry key="jaxb.formatted.output"><value
> type="java.lang.Boolean">true</value></entry>
> </util:map>
>
> <bean id="schemaHolder"
> class="org.apache.cxf.jaxrs.utils.schemas.SchemaHandler">
> <property name="schemas" ref="XMLISchemas"/> <!-- XMLIschemas
> contains the path of every xds to use -->
> </bean>
>
> XSD validation functionnality work perferctly in both way and my
> erroneous payload (bad tag or bad value) are generating exception
> outside of my service code. This is great, but I'd like to produce a
> specific response to user in case of xsd validation exception. So I
> introduced the ExceptionHandler bean and I figured out that thrown
> exception was not the one expected (SAXParseException or
> UnmarshalException) but an AbstractMethodError.
> Here is the (full) stacktrace :
>
> 17:55:30,314 INFO [stdout] 24-03-14 16:55:30[WARN
> ][o.a.c.j.p.AbstractJAXBProvider][javax.xml.bind.UnmarshalException
> 17:55:30,320 INFO [stdout] - with linked exception:
> 17:55:30,321 INFO [stdout] [org.xml.sax.SAXParseException; lineNumber:
> 4; columnNumber: 4; cvc-complex-type.2.4.a: Invalid content was found
> starting with element 'direct'. One of '{direction}' is expected.]
> 17:55:30,321 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:483)
>
> 17:55:30,321 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:417)
>
> 17:55:30,321 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:386)
>
> 17:55:30,322 INFO [stdout] at
> org.apache.cxf.jaxrs.provider.JAXBElementProvider.unmarshalFromInputStream(JAXBElementProvider.java:272)
>
> 17:55:30,322 INFO [stdout] at
> org.apache.cxf.jaxrs.provider.JAXBElementProvider.doUnmarshal(JAXBElementProvider.java:225)
>
> 17:55:30,322 INFO [stdout] at
> org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:184)
>
> 17:55:30,322 INFO [stdout] at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1280)
>
> 17:55:30,322 INFO [stdout] at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1231)
>
> 17:55:30,323 INFO [stdout] at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:782)
> 17:55:30,323 INFO [stdout] at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:741)
>
> 17:55:30,323 INFO [stdout] at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:254)
>
> 17:55:30,323 INFO [stdout] at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:90)
>
> 17:55:30,324 INFO [stdout] at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
>
> 17:55:30,324 INFO [stdout] at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>
> 17:55:30,324 INFO [stdout] at
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
>
> 17:55:30,324 INFO [stdout] at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
>
> 17:55:30,324 INFO [stdout] at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
>
> 17:55:30,325 INFO [stdout] at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
>
> 17:55:30,325 INFO [stdout] at
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
>
> 17:55:30,325 INFO [stdout] at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
>
> 17:55:30,325 INFO [stdout] at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
>
> 17:55:30,326 INFO [stdout] at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> 17:55:30,326 INFO [stdout] at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
>
> 17:55:30,326 INFO [stdout] at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
>
> 17:55:30,326 INFO [stdout] at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>
> 17:55:30,326 INFO [stdout] at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>
> 17:55:30,327 INFO [stdout] at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
>
> 17:55:30,327 INFO [stdout] at
> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>
> 17:55:30,327 INFO [stdout] at
> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>
> 17:55:30,327 INFO [stdout] at
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
>
> 17:55:30,328 INFO [stdout] at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
>
> 17:55:30,328 INFO [stdout] at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
>
> 17:55:30,328 INFO [stdout] at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
>
> 17:55:30,328 INFO [stdout] at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
> 17:55:30,328 INFO [stdout] at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> 17:55:30,329 INFO [stdout] at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
>
> 17:55:30,329 INFO [stdout] at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
> 17:55:30,329 INFO [stdout] at java.lang.Thread.run(Thread.java:722)
> 17:55:30,329 INFO [stdout] Caused by: org.xml.sax.SAXParseException;
> lineNumber: 4; columnNumber: 4; cvc-complex-type.2.4.a: Invalid content
> was found starting with element 'direct'. One of '{direction}' is expected.
> 17:55:30,330 INFO [stdout] at
> org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
> Source)
> 17:55:30,330 INFO [stdout] at
> org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
> 17:55:30,330 INFO [stdout] at
> org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
> 17:55:30,330 INFO [stdout] at
> org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
> 17:55:30,330 INFO [stdout] at
> org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
> 17:55:30,331 INFO [stdout] at
> org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown
> Source)
> 17:55:30,331 INFO [stdout] at
> org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown
> Source)
> 17:55:30,331 INFO [stdout] at
> org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown
> Source)
> 17:55:30,331 INFO [stdout] at
> org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
> 17:55:30,331 INFO [stdout] at
> org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.startElement(Unknown
> Source)
> 17:55:30,332 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:101)
>
> 17:55:30,332 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:246)
>
> 17:55:30,332 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:180)
>
> 17:55:30,332 INFO [stdout] at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:415)
>
> 17:55:30,333 INFO [stdout] ... 36 more
> 17:55:30,334 ERROR
> [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/server].[CXFServlet]]
> JBWEB000236: Servlet.service() for servlet CXFServlet threw exception:
> java.lang.AbstractMethodError:
> javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;
>
> at
> javax.ws.rs.WebApplicationException.validate(WebApplicationException.java:186)
> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
> at
> javax.ws.rs.ClientErrorException.<init>(ClientErrorException.java:127)
> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
> at
> javax.ws.rs.BadRequestException.<init>(BadRequestException.java:92)
> [javax.ws.rs-api-2.0-m10.jar:2.0-m10]
> at
> org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleExceptionEnd(AbstractJAXBProvider.java:688)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.handleJAXBException(AbstractJAXBProvider.java:700)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:198)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1280)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1231)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:782)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:741)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:254)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:90)
> [cxf-rt-frontend-jaxrs-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
> [cxf-api-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> [cxf-api-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
> at
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
> [cxf-rt-transports-http-2.7.10.jar:2.7.10]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
> [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> at
> org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
> [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> at
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
> [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
> [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09-icedtea]
>
> I'd like to catch the SAXException or the unmarshallingException in
> order to indicate the invalid message part to the sender.
> It's look like a library mismatching, but I can't figure out which one.
>
>
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com