You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2010/09/29 09:54:42 UTC

[jira] Resolved: (CAMEL-3176) Cannot get response data when set sync= true option

     [ https://issues.apache.org/activemq/browse/CAMEL-3176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-3176.
--------------------------------

         Assignee: Claus Ibsen
    Fix Version/s: 2.5.0
       Resolution: Working as Designed

> Cannot get response data when set sync= true option
> ---------------------------------------------------
>
>                 Key: CAMEL-3176
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3176
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-mina
>    Affects Versions: 2.4.0
>         Environment: Camel2.4.0+Mina1.1.7
> Tomcat 6.0
> PC Server
>            Reporter: maozuoyun
>            Assignee: Claus Ibsen
>             Fix For: 2.5.0
>
>
> I use camel-mina for app-client  to corresponding  to a TCP Server in IN-OUT way, it can send request message to server,but Cannot get response data from server. It printed "No response received from remote server" 。
> Endpoint configuration url=mina:tcp://172.22.1.128:9998?encoding=GBK&disconnect=true&timeout=30000&lazySessionCreation=true&textline=true&sync=true
> Where does wrong with my code?
> Below are app logs:
> 2010-09-29 15:10:06,721 [Error][CI20100929151002034994]Error ServiceRouteProcessor.dispatchServiceError adapt:No response received from remote server: mina:tcp://172.22.1.128:9998?encoding=GBK&disconnect=true&timeout=30000&lazySessionCreation=true&textline=true&sync=true. Exchange[Message: [B@c08534]
> com.whbcn.channels.cai.exception.CAIException: Error adapt:No response received from remote server: mina:tcp://172.22.1.128:9998?encoding=GBK&disconnect=true&timeout=30000&lazySessionCreation=true&textline=true&sync=true. Exchange[Message: [B@c08534]
> 	at com.whbcn.channels.cai.adapter.AbstractAdapter.adapt(AbstractAdapter.java:76)
> 	at com.whbcn.channels.cai.platform.processor.ServiceRouteProcessor.dispatchService(ServiceRouteProcessor.java:67)
> 	at com.whbcn.channels.cai.platform.route.RouterManager.routeMessage(RouterManager.java:49)
> 	at com.whbcn.channels.cai.platform.ServiceFacade.sendRequest(ServiceFacade.java:45)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:260)
> 	at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:164)
> 	at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:159)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
> 	at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:74)
> 	at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95)
> 	at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65)
> 	at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:104)
> 	at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:272)
> 	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:98)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:72)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:290)
> 	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:202)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:334)
> 	at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:274)
> 	at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:179)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
> 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
> 	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
> 	at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:97)
> 	at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
> 	at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110)
> 	at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:98)
> 	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:423)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:178)
> 	at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:142)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: org.apache.camel.CamelExchangeException: No response received from remote server: mina:tcp://172.22.1.128:9998?encoding=GBK&disconnect=true&timeout=30000&lazySessionCreation=true&textline=true&sync=true. Exchange[Message: [B@c08534]
> 	at org.apache.camel.component.mina.MinaProducer.process(MinaProducer.java:132)
> 	at com.whbcn.channels.cai.adapter.AbstractAdapter.adapt(AbstractAdapter.java:64)
> 	... 121 more
> TCPServer.java:
> public class TcpServer {
> 	public static void main(String[] args) {
> 		TcpServer server = new TcpServer();
> 	}
> 	public TcpServer() {
> 		start();
> 	}
> 	private void start() {
> 		try {
> 			ServerSocket serverSocket = new ServerSocket(9998,1);
> 			while (true) {
> 				Socket socket = serverSocket.accept();
> 				Thread thread = new AcceptThread(socket);
> 			}
> 		} catch (Exception e) {
> 			e.printStackTrace();
> 		}
> 	}
> }
> class AcceptThread extends Thread {
> 	Socket socket = null;
> 	public AcceptThread(Socket socket) {
> 		this.socket = socket;
> 		start();
> 	}
> 	public void run() {
> 		try {
> 			InputStream inputStream = socket.getInputStream();
> 			
> 			byte[] reqBytes = new byte[1024*20];
> 			
> 			inputStream.read(reqBytes);
> 			
> 			System.out.println("receive bytes="+new String(reqBytes));
> 			
> 			OutputStream outputStream = socket.getOutputStream();
> 			outputStream.write("Hello!!@".getBytes());
> 			outputStream.flush();
> 			System.out.println("receive line!");
> 		} catch (Exception e) {
> 			e.printStackTrace();
> 		} finally {
> 			try {
> 				socket.close();
> 			} catch (Exception e) {
> 				e.printStackTrace();
> 			}
> 		}
> 	}
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.