使用JBoss EAP 6.4为SOAP代理在JBoss Fuse中创建Camel Route的简单人指南

时间:2016-11-21 11:41:06

标签: java soap jboss jbossfuse jboss-eap-6

我有一个公开的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服务器中输入名称(与原始文件完全相同)。

我已经回顾了大量的博客,文章,红帽教程,大约一两个星期的视频,但我只是放弃了这一点。这很难吗?

1 个答案:

答案 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端点。