2016-11-21 14 views
1

У меня есть веб-сервис, открытый для общественности, и я хотел бы скрыть его с помощью Fuse в качестве внешнего интерфейса для внешних запросов. Я думаю, что мне нужно настроить прокси-сервер Camel для этого.Простой Man Guide для создания маршрута Camel в JBoss Fuse на JBoss EAP 6.4 для SOAP-прокси

В среде разработки (машина Windows 7 x64) Я успешно установил и протестировал jdk-8u111-windows-x64, apache-maven-3.3.9, jboss-eap-6.4.0-installer, предохранитель -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 для использования публичной веб-службы (http://www.webservicex.net/country.asmx), а затем развернуть ее как новый веб-сервис с другим именем точно так же, как и оригинал, конечно) на моем локальном автономном сервере Fuse.

Я просмотрел тонны блогов, статей, учебников по Red Hat, видео в течение недели или двух, но я просто даю себе это. Это сложно?

+0

Если вы прочли такое большое количество информации по этой теме, было бы неплохо поделиться тем, насколько далеко все это не может быть применено для решения вашей проблемы. – ImportanceOfBeingErnest

ответ

0

Это довольно просто, чтобы прокси-сервер фактического веб-сервиса с помощью Camel.

См. Ниже (с учетом веб-служб страны с указанной вами конечной точки) с минимальной маршрутизацией, которую вы могли бы достичь. Тем не менее, в зависимости от вашего варианта использования, например, если вам нужно дополнительно проверить, выполнить некоторую логику обработки или сделать некоторые преобразования во время медиации, вы тоже можете это сделать.

Но как минимум раз в прокси-запрос от пользовательского оконечного устройства к фактической конечной точке этого является то, что требуется:

<?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> 

ли к сведению: Я использую маршрут верблюд с Blueprint DSL и Camel CXF для выявления и потребляющих конечные точки SOAP.