我对骆驼很陌生,遇到了一个问题。
我正在尝试使用 cxf 端点创建一个动态 Web 服务代理(正在工作)。一切都很顺利,除了我不知道如何使用 Java DSL 设置 cxf 端点超时。
我发现了很多关于如何使用 Spring 配置的文章,但我试图通过仅使用 Java DSL 来实现这一点。
这是我目前拥有的,请有人指出我如何使用 Java DSL 操作 CXF 超时(连接/接收)的正确方向
public void configure() throws Exception
{
onException(Exception.class).handled(true).transform()
.method(MyExceptionHandler.class, "handleException");
CxfEndpoint inboundCxf = new CxfEndpoint();
inboundCxf.setAddress(soapProxyConfig.getBaseUrl()
+ soapProxyConfig.getAddress());
inboundCxf.setCamelContext(camelContext);
inboundCxf.setDataFormat(DataFormat.RAW);
inboundCxf.setServiceName(new QName(soapProxyConfig
.getTargetNamespace(), soapProxyConfig.getRemoteServiceName()));
inboundCxf.setPortName(new QName(soapProxyConfig.getTargetNamespace(),
soapProxyConfig.getRemotePortName()));
inboundCxf.setWsdlURL(soapProxyConfig.getRemoteWsdl());
SedaEndpoint sedaEndpoint = new SedaEndpoint();
sedaEndpoint.setConcurrentConsumers(100);
sedaEndpoint.setExchangePattern(ExchangePattern.InOut);
sedaEndpoint.setSize(100);
sedaEndpoint.setCamelContext(camelContext);
sedaEndpoint.setEndpointUriIfNotSpecified("seda:" + routeId + "-Queue");
Endpoint[] remoteEndpoints = new Endpoint[soapProxyConfig
.getRemoteUrls().size()];
for (int i = 0; i < soapProxyConfig.getRemoteUrls().size(); i++)
{
Endpoint endpoint = camelContext.getEndpoint(soapProxyConfig
.getRemoteUrls().get(i));
endpoint.setCamelContext(camelContext);
remoteEndpoints[i] = endpoint;
}
from(inboundCxf).routeId(routeId)
.routePolicy(new WebServiceRoutePolicy()).to(sedaEndpoint);
from(sedaEndpoint).routeId(routeId + "-Queue").loadBalance()
.roundRobin().to(remoteEndpoints).id("Out");