Hi,

I am trying to convert XML into JSON format using XMLJson in TCP client
server program. I am having three files - TCPClient, TCPServer and CamelDemo
class. In between client and server, i am using CamelDemo class for
conversion. It shows BufferDataFormat Exception in CamelDemo class. This is
my code  


*TCPClient Code:*
public class TCPClient {
        public static void main(String[] args) throws IOException {
                Socket clientsoc = null;
                PrintWriter out = null;
                String inputMsg = null;
                try {
                        clientsoc = new Socket("localhost", 6789);
                          
inputMsg="<Root><firstName>xxx</firstName><lastName>yyy</lastName></Root>";
                                      out = new
PrintWriter(clientsoc.getOutputStream(), true);
                        out.println(inputMsg);

                        InputStream is = clientsoc.getInputStream();
                        InputStreamReader isr = new InputStreamReader(is);
                        BufferedReader br = new BufferedReader(isr);
                        String receivedMsg = br.readLine();
                        System.out.println("Message received  from server is "
                                        + receivedMsg);

                }
                catch (Exception e) {
                        e.printStackTrace();

                } finally {
                        out.close();
                        clientsoc.close();
                        out = null;
                        inputMsg = null;
                }
        }
}


*TCPServer Code:*
public class TCPServer 
{
    public static void main(String[] args) 
    {
        Socket socket =null;
        try
        {
 
            int port = 6123;
            ServerSocket serverSocket = new ServerSocket(port);
            System.out.println("Server Started and listening to the port
6123");
            while(true) 
            {
                socket = serverSocket.accept();
                InputStream is = socket.getInputStream();
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);
                String receivedMsg = br.readLine();
                System.out.println("Message received from client is
"+receivedMsg);

                String returnMessage=receivedMsg;
                PrintWriter out = new PrintWriter(socket.getOutputStream(),
true);
                out.println(returnMessage);
                System.out.println("Message sent to the client is
"+returnMessage);
                out.flush();
            }
        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                socket.close();
            }
            catch(Exception e){}
        }
    }
}


*CamelDemo Code:*
public class CamelDemo {
        static CamelContext context = null;
        public static void main(String[] s) {
               try {
                                   context = new DefaultCamelContext();
                         final XmlJsonDataFormat xmlJsonFormat=new 
XmlJsonDataFormat();
                         xmlJsonFormat.setEncoding("UTF-8");
                         xmlJsonFormat.setForceTopLevelObject(true);
                              xmlJsonFormat.setTrimSpaces(true);
                         xmlJsonFormat.setRootName("Root");
                         xmlJsonFormat.setSkipNamespaces(true);
                         xmlJsonFormat.setRemoveNamespacePrefixes(true);
                         
xmlJsonFormat.setExpandableProperties(Arrays.asList("d", "e"));
                        
                Component component = new 
org.apache.camel.component.mina.MinaComponent();
                        context.addComponent("tcp", component);
                        context.addRoutes(new RouteBuilder() {
                        public void configure() {
                        
from("mina:tcp://localhost:6789?textline=false&sync=true")
                                .marshal(xmlJsonFormat)
                                .process(new Processor() {
                                // consumer
                                   public void process(Exchange e) {
                                           try {
                                                  // Request message from client
                                                 String inMsg = (String) 
e.getIn().getBody();
                                                     
System.out.println("******"+inMsg+"******");
                                               // Configuring Destination
                                                   Endpoint endpoint =
context.getEndpoint("mina:tcp://127.0.0.1:6123?textline=false&sync=true");
                                        Exchange exchange = 
endpoint.createExchange(ExchangePattern.InOut);
                                                                 Message in
= exchange.getIn();
                                        in.setBody(inMsg);
                                                                Producer
producer = endpoint.createProducer();
                                                               
producer.start();
                                                               
producer.process(exchange);

                                        // Response message from destination
                                        Message out = exchange.getOut();
                                        e.getOut().setBody(out);
                                             producer.stop();
                                         } catch (Exception e1) {
                                                e1.printStackTrace();
                                                        }

                                      }
                                });//.to("mina:tcp://127.0.0.1:6123?sync=true");
                                }

                        });

                        context.start();
                        Thread.sleep(10000000);
                        context.stop();

                } catch (Throwable ex) {
                        ex.printStackTrace();
                }
        }
}


*Exception:*
14:04:16.350 [SocketAcceptorIoProcessor-0.0] DEBUG
o.a.m.filter.executor.ExecutorFilter - Launching thread for /127.0.0.1:51299
14:04:16.350 [Camel (camel-1) thread #3 - MinaThreadPool] DEBUG
o.a.m.filter.executor.ExecutorFilter - Exiting since queue is empty for
/127.0.0.1:51299
14:04:16.350 [SocketAcceptorIoProcessor-0.0] DEBUG
o.a.m.filter.executor.ExecutorFilter - Launching thread for /127.0.0.1:51299
14:04:16.350 [Camel (camel-1) thread #3 - MinaThreadPool] DEBUG
o.a.c.component.mina.MinaConsumer - Closing session as an exception was
thrown from MINA
14:04:16.366 [Camel (camel-1) thread #3 - MinaThreadPool] WARN 
o.a.c.c.m.MinaConsumer$ReceiveHandler - [/127.0.0.1:51299] Unexpected
exception from exceptionCaught handler.
org.apache.camel.CamelException:
org.apache.mina.filter.codec.ProtocolDecoderException:
org.apache.mina.common.BufferDataException: dataLength: 1012035439 (Hexdump:
3C 52 6F 6F 74 3E 3C 66 69 72 73 74 4E 61 6D 65 3E 78 78 78 3C 2F 66 69 72
73 74 4E 61 6D 65 3E 3C 6C 61 73 74 4E 61 6D 65 3E 79 79 79 3C 2F 6C 61 73
74 4E 61 6D 65 3E 3C 2F 52 6F 6F 74 3E 0D 0A)
        at
org.apache.camel.component.mina.MinaConsumer$ReceiveHandler.exceptionCaught(MinaConsumer.java:91)
~[camel-mina-2.11.1.jar:2.11.1]
        at
org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.exceptionCaught(AbstractIoFilterChain.java:564)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextExceptionCaught(AbstractIoFilterChain.java:345)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:53)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.exceptionCaught(AbstractIoFilterChain.java:643)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:224)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
[mina-core-1.1.7.jar:na]
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_14]
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_14]
        at java.lang.Thread.run(Thread.java:619) [na:1.6.0_14]
Caused by: org.apache.mina.filter.codec.ProtocolDecoderException:
org.apache.mina.common.BufferDataException: dataLength: 1012035439 (Hexdump:
3C 52 6F 6F 74 3E 3C 66 69 72 73 74 4E 61 6D 65 3E 78 78 78 3C 2F 66 69 72
73 74 4E 61 6D 65 3E 3C 6C 61 73 74 4E 61 6D 65 3E 79 79 79 3C 2F 6C 61 73
74 4E 61 6D 65 3E 3C 2F 52 6F 6F 74 3E 0D 0A)
        at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:165)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived(AbstractIoFilterChain.java:499)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(AbstractIoFilterChain.java:293)
[mina-core-1.1.7.jar:na]
        at
org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:228)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:198)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.transport.socket.nio.SocketIoProcessor.access$400(SocketIoProcessor.java:45)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:485)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
~[mina-core-1.1.7.jar:na]
        ... 3 common frames omitted
Caused by: org.apache.mina.common.BufferDataException: dataLength:
1012035439
        at
org.apache.mina.common.ByteBuffer.prefixedDataAvailable(ByteBuffer.java:1631)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.filter.codec.serialization.ObjectSerializationDecoder.doDecode(ObjectSerializationDecoder.java:88)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:133)
~[mina-core-1.1.7.jar:na]
        at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:158)
~[mina-core-1.1.7.jar:na]
        ... 14 common frames omitted
14:04:16.366 [Camel (camel-1) thread #3 - MinaThreadPool] DEBUG
o.a.m.filter.executor.ExecutorFilter - Exiting since queue is empty for
/127.0.0.1:51299

Please help me to solve this exception



--
View this message in context: 
http://camel.465427.n5.nabble.com/XML-to-JSON-using-XMLJSON-BufferDataException-tp5743019.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to