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.