David Blevins created TOMEE-2920:
------------------------------------

             Summary: write(param) is only valid in arrays
                 Key: TOMEE-2920
                 URL: https://issues.apache.org/jira/browse/TOMEE-2920
             Project: TomEE
          Issue Type: Bug
    Affects Versions: 7.0.0
            Reporter: David Blevins


In TomEE 1.7 and before the following style of JAX-RS would work as we used 
Jackson:

 
{code:java}
@POST
@Produces(MediaType.APPLICATION_JSON)
public long add(final String data) throws Exception {
    return 100;
}
{code}
After our switch to Johnzon in TomEE 7, endpoints like the above will generate 
a 500 error like the one below:
{code:java}
  org.apache.cxf.interceptor.Fault: write(param) is only valid in arrays  
org.apache.cxf.interceptor.Fault: write(param) is only valid in arrays  at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleWriteException(JAXRSOutInterceptor.java:396)
  at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:271)
  at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:121)
  at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:83)
  at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
  at 
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
  at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
  at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
  at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
  at 
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.doInvoke(CxfRsHttpListener.java:253)
  at 
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:94)  
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)  at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  at org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:65)  at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
  at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
  at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)  at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
  at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)  
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) 
 at 
org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
  at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
  at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
  at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)  at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799){code}
We should investigate at least improving this error message, providing porting 
recommendations, or creating some option that could be enabled to allow this to 
succeed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to