Java HTTP请求参数使用:Camel SU问题
下面是用于使用Http消息的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
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”。