Ws-Addressing Mule ESB 中的功能
Ws-Addressing feature in Mule ESB
我正在构建一个基于 Mule ESB 的中间件,实现异步 Web 服务。
我有一个客户端通过 SoapUI 将 Soap 请求发送到我的 ESB 端点,该端点使用启用了 WS-Addressing 功能的 CXF Jax-ws 服务实现。我发送响应字符串 "Hello" 并开始处理输入参数以向具有回调 Web 服务端点的客户端进行异步回复。
请求具有正确的 Soap Header,带有标记 ReplyTo,它具有客户端中 callBack 端点的地址。
这是我的服务器 jax-ws 网络服务代码:
@WebService(serviceName = "OrderReceive")
@Addressing
public class OrderReceive {
public String perform(String id, long creditCardNumber, List<Product> products) {
//Save values to process the async reply
setSessionVariable(id,creditCardNumber,products);
return "Hello, i will send the response soon";
}
}
问题是我的 Web 服务自动响应 ReplyTo 地址,我无法控制响应。
是否可以拦截该响应,并设置正确的 body?
为什么我的网络服务自动响应?
此致
这就是我喜欢 Whosebug 的原因。我从来没有听说过这个!!!
您的 "automatic response" 可能是由 mule 中的行为引起的:
如果 mule 在消息中检测到 reply_to 属性,则启动对该端点的自动响应。这是针对 jms 中的请求-回复功能,但可能会影响 http 连接器。
本文来源:
Automatic response when sending message
--------------------*---------------------
经过研究,我发现 ws-addressing 的正确行为是:
client -- SOAP request ( on port A ) --> server
client <-- HTTP 202 ( "Hello, i will send the response soon" HTTP body ) --- server
client <-- SOAP response ("Response is ready!!" on port B ) --- server
来源:jax-ws 2.2.8 and ws-addressing
为了使这成为可能,我们需要:
1.- 服务器端点: mule/cxf
2.- 服务客户: soapui
3.- 回调端点: 接收异步响应(我认为这是在 mule 中)
明白了,关于它的官方文档很伤心:
MULE 3.7 Enabling WS-Addressing
我认为您需要 CallBack Enpoint 来创建和执行异步响应。我没有在 mule 中找到任何东西:(.
这里是 java 实现的一些链接,没有 mule:
Asynchronous web services with WS-Addressing
Invoke a single port async service using JAX-WS and WS-Addressing
--------------------*---------------------
替代解决方案可以是:
1.- mule/cxf 中的 Web 服务没有寻址。
2.- 内部操作方法:
public Response operation ( Request requestPayload ) {
MuleClient client = new MuleClient(muleContext);
client.dispatch("jms://my.queue", requestPayload , null);// this is async
return new Response("Hello, i will send the response soon.");
}
3.- 创建一个 jms 入站端点监听:jms://my.queue
<flow>
<jms:inbound-endpoint queue="my.queue" >
<do something>
<launch a response to client>
</flow>
这可能是:
a.- 通过电子邮件发送给客户
b.- 使用客户端发布的服务
c.- 短信通知
d.- 随便
这种方法可以更灵活并支持未来的 疯狂 要求。
如果您需要有关 mule cxf 服务或 jms 的帮助,请告诉我以帮助您!
我正在构建一个基于 Mule ESB 的中间件,实现异步 Web 服务。 我有一个客户端通过 SoapUI 将 Soap 请求发送到我的 ESB 端点,该端点使用启用了 WS-Addressing 功能的 CXF Jax-ws 服务实现。我发送响应字符串 "Hello" 并开始处理输入参数以向具有回调 Web 服务端点的客户端进行异步回复。
请求具有正确的 Soap Header,带有标记 ReplyTo,它具有客户端中 callBack 端点的地址。
这是我的服务器 jax-ws 网络服务代码:
@WebService(serviceName = "OrderReceive")
@Addressing
public class OrderReceive {
public String perform(String id, long creditCardNumber, List<Product> products) {
//Save values to process the async reply
setSessionVariable(id,creditCardNumber,products);
return "Hello, i will send the response soon";
}
}
问题是我的 Web 服务自动响应 ReplyTo 地址,我无法控制响应。
是否可以拦截该响应,并设置正确的 body?
为什么我的网络服务自动响应?
此致
这就是我喜欢 Whosebug 的原因。我从来没有听说过这个!!!
您的 "automatic response" 可能是由 mule 中的行为引起的:
如果 mule 在消息中检测到 reply_to 属性,则启动对该端点的自动响应。这是针对 jms 中的请求-回复功能,但可能会影响 http 连接器。
本文来源:
Automatic response when sending message
--------------------*---------------------
经过研究,我发现 ws-addressing 的正确行为是:
client -- SOAP request ( on port A ) --> server
client <-- HTTP 202 ( "Hello, i will send the response soon" HTTP body ) --- server
client <-- SOAP response ("Response is ready!!" on port B ) --- server
来源:jax-ws 2.2.8 and ws-addressing
为了使这成为可能,我们需要:
1.- 服务器端点: mule/cxf
2.- 服务客户: soapui
3.- 回调端点: 接收异步响应(我认为这是在 mule 中)
明白了,关于它的官方文档很伤心:
MULE 3.7 Enabling WS-Addressing
我认为您需要 CallBack Enpoint 来创建和执行异步响应。我没有在 mule 中找到任何东西:(.
这里是 java 实现的一些链接,没有 mule:
Asynchronous web services with WS-Addressing
Invoke a single port async service using JAX-WS and WS-Addressing
--------------------*---------------------
替代解决方案可以是:
1.- mule/cxf 中的 Web 服务没有寻址。
2.- 内部操作方法:
public Response operation ( Request requestPayload ) {
MuleClient client = new MuleClient(muleContext);
client.dispatch("jms://my.queue", requestPayload , null);// this is async
return new Response("Hello, i will send the response soon.");
}
3.- 创建一个 jms 入站端点监听:jms://my.queue
<flow>
<jms:inbound-endpoint queue="my.queue" >
<do something>
<launch a response to client>
</flow>
这可能是:
a.- 通过电子邮件发送给客户
b.- 使用客户端发布的服务
c.- 短信通知
d.- 随便
这种方法可以更灵活并支持未来的 疯狂 要求。
如果您需要有关 mule cxf 服务或 jms 的帮助,请告诉我以帮助您!