Hi, i wish to split the big xml to the small one. So I tried to use tokenizeXML or Stax method to implement it. The two ways both work when i did the unit test. But when i deployed the war to Tomcat. I found they both failed to split the xml. It seems when split failed, the following process handler is skipped and the entire xml will be response to the the browser. I didn't find any errors in tomcat or in my browser. The code is:
JaxbDataFormat jaxb = new JaxbDataFormat(false); jaxb.setContextPath(GetDetailInfoByTrainCode.class.getPackage().getName()); from("restlet:/pacs/{trainCode}?restletMethods=post,get") .process(new Processor() { public void process(Exchange exchange) throws Exception { String trainCode = exchange.getIn().getHeader("trainCode", String.class); GetDetailInfoByTrainCode gd = new GetDetailInfoByTrainCode(); gd.setTrainCode(trainCode); gd.setUserID(""); exchange.getIn().setBody(gd, GetDetailInfoByTrainCode.class); } }) .marshal(jaxb) .to("spring-ws:http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx?soapAction=http://WebXml.com.cn/getDetailInfoByTrainCode") .split().tokenizeXML("getDetailInfo").streaming() // or using stax //.split(StAXBuilder.stax(GetDetailInfo.class, true)).streaming() .process(new Processor() { @Override public void process(Exchange exchange) throws Exception { String content = exchange.getIn().getBody(String.class); Response response = exchange.getIn().getHeader(RestletConstants.RESTLET_RESPONSE, Response.class); response.setStatus(Status.SUCCESS_OK); response.setEntity(content, MediaType.TEXT_XML); exchange.getOut().setBody(response); } }); Why? Do i need to do something when running on Tomcat? Thanks! -- View this message in context: http://camel.465427.n5.nabble.com/splitting-xml-failed-when-running-on-tomcat-tp5740407.html Sent from the Camel - Users mailing list archive at Nabble.com.