Hi,
  
 I am trying to use Server api of Asynchronous Processing. I use 
apache-cxf-2.7.5,apache-tomcat-6.0.37 and Java 6.
  
 I use the example in jsr339-jaxrs-2.0-final-spec.pdf (page 51):
  
 @Path("/async/longRunning")
public class MyResource {

@GET
public void longRunningOp(@Suspended final AsyncResponse ar) {
executor.submit(
new Runnable() {
public void run() {
executeLongRunningOp();
ar.resume("Hello async world!");
 } });
}
 ...
}
  
 This is my client code:
 // Response
   Response response = clientWithAsync.get();
  System.out.println("\nResponse received.");
   String stringWithAsync = response.readEntity(String.class);
  System.out.println("Entity: " + stringWithAsync + "\n");
  
 When I try to use a cxf client to get the response normally, I got this error:
  
 <html><head><title>Apache Tomcat/7.0.27 - Error report</title><style><!--H1 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
 H2 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
 H3 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
 BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} 
B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P 
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
 {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> 
</head><body><h1>HTTP Status 500 - </h1><HR size="1" 
noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> 
<u></u></p><p><b>description</b> <u>The server encountered an internal error () 
that prevented it from fulfilling this request.</u></p><p><b>exception</b> 
<pre>java.lang.RuntimeException: org.apache.cxf.interceptor.Fault
 
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:331)
 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:168)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
</pre></p><p><b>root cause</b> <pre>org.apache.cxf.interceptor.Fault
 
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:76)
 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:331)
 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:168)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
</pre></p><p><b>root cause</b> <pre>java.lang.NullPointerException
 
org.apache.cxf.jaxrs.impl.AsyncResponseImpl.initContinuation(AsyncResponseImpl.java:240)
 
org.apache.cxf.jaxrs.impl.AsyncResponseImpl.&lt;init&gt;(AsyncResponseImpl.java:58)
 org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:773)
 org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:747)
 
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:240)
 
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:100)
 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:203)
 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:243)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:168)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:219)
</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available 
in the Apache Tomcat/7.0.27 logs.</u></p><HR size="1" 
noshade="noshade"><h3>Apache Tomcat/7.0.27</h3></body></html>

 I am not sure what the problem is. Is there anything wrong with my client? Or 
I can't use asynchronous api in server like this? Can I use a synchronous 
client or I need to use an asynchronous client? Could you please give me some 
advice?
  
 Thank you very much!
  
 Sincerely,
  
 Di Ma

Reply via email to