我正在尝试向外部SOAP服务发送SOAP消息。我需要做的是用SOAP消息包装一个xml字符串,并添加一些SOAP头以进行身份验证。现在我正在使用:
<cxf:cxfEndpoint id="someEndpoint" wsdl="someWSDL.wsdl"
address="http://someAddress:9999/service.asmx"/>
<camelContext>
<route>
<from uri="vm-someChannel">
<to uri="cxf:bean:someEndpoint?dataFormat=PAYLOAD"/>
</route>
</camelContext>
这是可行的,但我还需要包括soap头。有效负载模式只发送带有主体的soap信封。我曾尝试使用拦截器注入头,但它被忽略了。
有可能有一个带有有效负载模式的肥皂标题部分吗?如果没有,完成我正在尝试做的事情的最简单方法是什么?
谢谢
是的,您可以在有效负载模式下获取和设置SOAP标头,更多信息请参见-http://camel.apache.org/cxf.html#CXF-如何设置PayLoadMode中的OAPHeaders
在发送到CXF beanendpoint之前,可以在bean或处理器中执行此操作
编辑:添加代码示例
@Override
public void process(Exchange exchange) throws Exception {
Message out = exchange.getOut();
if (out.getHeader(Header.HEADER_LIST) == null) {
out.setHeader(Header.HEADER_LIST, new ArrayList<SoapHeader>());
}
List<SoapHeader> headers = CastUtils.cast((List<?>)out.getHeader(Header.HEADER_LIST));
try {
SoapHeader header = new SoapHeader(new QName("Header Name"), "Header Value");
header.setDirection(Direction.DIRECTION_OUT);
header.setMustUnderstand(true);
soapHeaders.add(header);
} catch (JAXBException e) {
e.printStackTrace();
}
}
SoapHeader文档-此处
您需要使用QName正确构建标头
我试图建立以下路线。 实际上,我希望用Servlet组件接收请求,做一些事情(处理器、转换等,但为了简单起见,我在这里排除了),将其重定向到我的WebService实现,然后文件组件将文件的内容返回到WebService。 如果作为第一个配置进行配置,servlet组件接收请求,路由到cxf:consumer,然后启动对cxf:producer的TCP调用,该调用在''中定义。 有办法实现我想要的
我想使用一个camel组件,它提供了使用和生成RESTful资源的能力。 对于这个例子,我想使用camel restlet组件。restlet组件一切正常,我已经使用REST DSL成功地实现了restlet consumer。然而,我有几个问题: 问题 1) 将restlet启用为异步是否安全?我读过restlet async可能会导致一些问题。这仍然正确吗?如何提高服务绩效?我应该改用码头吗?
我正在测试使用Apache Camel在Kafka(0.8.2.1)上发送消息的simple producer。我在Camel中使用java DSL创建了endpoint。 现在我想使用Apache Camel提供的ProducerTempalte在kafka上发送消息。但我在运行该程序时得到以下错误注意:Zookeeper和Kafka已启动并可以使用Kafka控制台生成/消费消息。 我猜这些属性
我正在使用apache camel,希望有多条路由。路线如下。
您好,我的基本要求是有一个可以发送消息的路由,并将其放在JMS队列中。camel上下文在JavaEE 6容器中运行,即JBoss AS 7.1.1,因此它附带了HornetQ for JMS;我通过引导单例启动上下文,但我不使用camel cdi。到目前为止,我一直在使用camel-jms组件,但现在我希望尽可能迁移到camel-sjms,因为springless。 我的问题是:在这个JavaEE
我创建了两个apache camel(blueprint XML)kafka项目,一个是kafka-producer(接受请求并将其存储在kafka服务器中),另一个是kafka-consumer(从kafka服务器获取ups消息并处理它们)。 这个设置对单个主题和单个消费者都很有效。然而,我如何在同一个Kafka主题中创建单独的消费者组?如何在不同的消费者群体中路由同一主题中的多个消费者特定消息