Java HTTP请求参数使用:Camel SU问题

Java HTTP请求参数使用:Camel SU问题,java,apache-camel,apache-servicemix,Java,Apache Camel,Apache Servicemix,下面是用于使用Http消息的Http Camel SU的代码段。您能否告知SMSProcessor组件有什么问题 我得到:无法将apache.servicemix.jbi.jaxp.StringSource强制转换为apache.servicemix.jbi.jaxp.StringSource“ 绑定: HttpMarshaller: import javax.jbi.messaging.MessageExchange; 导入javax.jbi.messaging.NormalizedMes

下面是用于使用Http消息的Http Camel SU的代码段。您能否告知
SMSProcessor
组件有什么问题

我得到:
无法将apache.servicemix.jbi.jaxp.StringSource强制转换为apache.servicemix.jbi.jaxp.StringSource“

绑定:


HttpMarshaller:

import javax.jbi.messaging.MessageExchange;
导入javax.jbi.messaging.NormalizedMessage;
导入javax.servlet.http.HttpServletRequest;
导入org.apache.servicemix.common.EndpointComponentContext;
导入org.apache.servicemix.http.endpoints.DefaultHttpConsumerMarshaler;
导入org.apache.servicemix.jbi.jaxp.StringSource;
公共类HttpMarshaller扩展了DefaultHttpConsumerMarshaller{
公共消息Exchange createExchange(HttpServletRequest请求,
javax.jbi.component.ComponentContext)引发异常{
//TODO自动生成的方法存根
字符串mobile=request.getParameter(“mobile”);
字符串smsTxt=request.getParameter(“smsTxt”);
//字符串消息=request.getParameter(“msg”);
MessageExchange exchange=((EndpointComponentContext)上下文).getDeliveryChannel().createExchangeFactory().createExchange(getDefaultMep());
NormalizedMessage in=exchange.createMessage();
字符串xmlContext=mobile+“,”+smsTxt;
System.out.println(“xmlContext----”+xmlContext);
in.setContent(新的StringSource(xmlContext));
exchange.setMessage(在“in”中);
换汇;
}
}
SMS处理器:

import org.apache.camel.Exchange;
导入org.apache.camel.Processor;
导入org.apache.servicemix.jbi.jaxp.StringSource;
公共类SMSProcessor实现处理器{
/* 
*@see org.apache.camel.Processor#process(org.apache.camel.Exchange)
*/
公共作废进程(Exchange)引发异常{
System.out.println(“SMSProcessor”);
StringSource文本=((StringSource)exchange.getIn().getBody());
System.out.println(“text”+text.getText());
}
}

使用Camel类型转换器,而不是Java类型转换

StringSource text=exchange.getIn().getBody(StringSource.class)

或者如果你想要纯文本,那就做吧

String text=exchange.getIn().getBody(String.class)

如果你想要一个DOM

Document dom=exchange.getIn().getBody(Document.class)


等等

使用Camel类型转换器,而不是Java类型转换

StringSource text=exchange.getIn().getBody(StringSource.class)

或者如果你想要纯文本,那就做吧

String text=exchange.getIn().getBody(String.class)

如果你想要一个DOM

Document dom=exchange.getIn().getBody(Document.class)


等等

嗨,我们面临着非常奇怪的问题。我在队列中放了一条消息“3543534543 |支付543535435 40.00”。嗨,我们面临着非常奇怪的问题。我在队列中放了一条消息“3543534543 |支付543535435 40.00”。