我有一个公开的Web服务,我想隐藏它使用Fuse作为外部请求的前端。我想我必须配置一个Camel Proxy来实现它。
在开发环境(Windows 7 x64机器)中,我成功安装并测试了jdk-8u111-windows-x64,apache-maven-3.3.9,jboss-eap-6.4.0-installer,fuse- eap-installer-6.3.0.redhat-187和devstudio-integration-stack-9.0.2.GA-standalone-installer,我正在使用JBoss Dev Studio 9.1.0.GA。
目前,我正在尝试如何使用JBoss Developer Studio 9.1.0.GA来使用公共Web服务(http://www.webservicex.net/country.asmx),然后将其部署为具有不同的全新Web服务在我的本地独立Fuse服务器中输入名称(与原始文件完全相同)。
我已经回顾了大量的博客,文章,红帽教程,大约一两个星期的视频,但我只是放弃了这一点。这很难吗?
答案 0 :(得分:1)
使用Camel代理实际的Web服务非常简单。
请参阅下文(从上面提到的端点考虑国家/地区Web服务),只需最少的路由即可实现此目的。但是,根据您的使用情况,例如您是否需要进一步验证,执行某些处理逻辑或在调解期间进行某些转换,您也可以这样做。
但至少只需要从您的自定义端点代理请求到实际端点,这就是所需要的:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">
<!-- CurrencyService Proxy Endpoint -->
<cxf:cxfEndpoint id="currencyServiceProxyEP" xmlns:c="http://www.webserviceX.NET"
endpointName="c:countrySoap" serviceName="c:country"
loggingFeatureEnabled="true" address="/CurrencyService/MyGatewayProxy" wsdlURL="WSDL/CountryService.wsdl">
<cxf:properties>
<entry key="dataFormat" value="MESSAGE" />
</cxf:properties>
</cxf:cxfEndpoint>
<!-- CurrencyService Actual Endpoint -->
<cxf:cxfEndpoint id="currencyServiceActualEP" xmlns:c="http://www.webserviceX.NET"
endpointName="c:countrySoap" serviceName="c:country"
loggingFeatureEnabled="true" address="http://www.webservicex.net/country.asmx" wsdlURL="WSDL/CountryService.wsdl">
<cxf:properties>
<entry key="dataFormat" value="MESSAGE" />
</cxf:properties>
</cxf:cxfEndpoint>
<camelContext xmlns="http://camel.apache.org/schema/blueprint" id="CountryService-Context">
<route id="proxyEPRoute">
<from uri="cxf:bean:currencyServiceProxyEP" />
<!-- Do Extra validation of payload, additional routing, processing, transaformation, mediation etc.. depending on your use case here.. -->
<to uri="cxf:bean:currencyServiceActualEP"/>
</route>
</camelContext>
</blueprint>
请注意:我使用Camel路由与Blueprint DSL和Camel CXF一起公开和使用SOAP端点。