You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Jeisson Fabian Perez Rodriguez <je...@gmail.com> on 2018/06/12 23:07:58 UTC

Error with consuming and exposing soap service with camel and sprint-boot

Hello,

Im trying to consume a SOAP WS and exposing it as soap too, using xml camel context file, so I defined the “cxf:cxfEndpoint” that would be the front end service exposed, and defined into the “camelcontext” tag an endpoint “callRealWebService” that contains the url of the SOAP WS.

Finally, I defined a route that uses “from" as the cxfendpoint and “to” the endpoint.

The problem is that when I deploy locally the project, cannot get the wsdl of my service so I don’t know if my config of camelcontext.xml is correct or the sprintboot.

These are my files:

camel_context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:camel="http://camel.apache.org/schema/spring"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:cxf="http://camel.apache.org/schema/cxf"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd        http://camel.apache.org/schema/spring  http://camel.apache.org/schema/spring/camel-spring.xsd         http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd">
    

    <cxf:cxfEndpoint
        address=“/documento"
        endpointName="s:DocumentoPort" id="servicioSS"
        serviceName="s:Documento" wsdlURL="etc/dc_ws.wsdl" xmlns:s="urn:document">
        <cxf:properties>
        		<entry key="dataFormat" value="MESSAGE"/>
        </cxf:properties>
    </cxf:cxfEndpoint>
    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
        <endpoint id="callRealWebService" uri="http://hostname/se/ws/dc_ws.php"/>
        <route id="_route1">
            <!-- CXF consumer using MESSAGE format -->
            <!-- log input received -->
            <!-- enrich the input by ensure the incidentId parameter is set 
	      <to uri="bean:enrichBean"/> -->
            <!-- Need to remove the http headers which could confuse the http endpoint -->
            <!-- send proxied request to real web service -->
            <from id="_from1" uri="cxf:bean:servicioSS"/>
            <!-- log answer from real web service -->
            <!-- removeHeaders id="_removeHeaders1" pattern="CamelHttp*"/> -->
            <to id="_to1" uri="log:input"/>
            <to id="_to2" ref="callRealWebService"/>
            <to id="_to3" uri="log:output"/>
        </route>
    </camelContext>
</beans>

Application.java

@SpringBootApplication
@ImportResource({"classpath:spring/camel-context.xml"})
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

I don’t define any configuration into the application.yml, I reviewed in other forums that have to define the cxf.path but it is necessary? 

could you please help me.

Thanks.

Re: Error with consuming and exposing soap service with camel and sprint-boot

Posted by Jeisson Fabian Perez Rodriguez <je...@gmail.com>.
Hello, 

Any suggestion about it? please?

Thank you.

> On Jun 12, 2018, at 6:07 PM, Jeisson Fabian Perez Rodriguez <je...@gmail.com> wrote:
> 
> Hello,
> 
> Im trying to consume a SOAP WS and exposing it as soap too, using xml camel context file, so I defined the “cxf:cxfEndpoint” that would be the front end service exposed, and defined into the “camelcontext” tag an endpoint “callRealWebService” that contains the url of the SOAP WS.
> 
> Finally, I defined a route that uses “from" as the cxfendpoint and “to” the endpoint.
> 
> The problem is that when I deploy locally the project, cannot get the wsdl of my service so I don’t know if my config of camelcontext.xml is correct or the sprintboot.
> 
> These are my files:
> 
> camel_context.xml
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans <http://www.springframework.org/schema/beans>"
>     xmlns:camel="http://camel.apache.org/schema/spring <http://camel.apache.org/schema/spring>"
>     xmlns:context="http://www.springframework.org/schema/context <http://www.springframework.org/schema/context>"
>     xmlns:cxf="http://camel.apache.org/schema/cxf <http://camel.apache.org/schema/cxf>"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance <http://www.w3.org/2001/XMLSchema-instance>" xsi:schemaLocation="        http://www.springframework.org/schema/beans <http://www.springframework.org/schema/beans> http://www.springframework.org/schema/beans/spring-beans.xsd <http://www.springframework.org/schema/beans/spring-beans.xsd>         http://www.springframework.org/schema/context <http://www.springframework.org/schema/context> http://www.springframework.org/schema/context/spring-context.xsd <http://www.springframework.org/schema/context/spring-context.xsd>        http://camel.apache.org/schema/spring <http://camel.apache.org/schema/spring>  http://camel.apache.org/schema/spring/camel-spring.xsd         http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd">
>     
> 
>     <cxf:cxfEndpoint
>         address=“/documento"
>         endpointName="s:DocumentoPort" id="servicioSS"
>         serviceName="s:Documento" wsdlURL="etc/dc_ws.wsdl" xmlns:s="urn:document">
>         <cxf:properties>
>         		<entry key="dataFormat" value="MESSAGE"/>
>         </cxf:properties>
>     </cxf:cxfEndpoint>
>     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring <http://camel.apache.org/schema/spring>">
>         <endpoint id="callRealWebService" uri="http://hostname/se/ws/dc_ws.php <http://hostname/se/ws/dc_ws.php>"/>
>         <route id="_route1">
>             <!-- CXF consumer using MESSAGE format -->
>             <!-- log input received -->
>             <!-- enrich the input by ensure the incidentId parameter is set 
> 	      <to uri="bean:enrichBean"/> -->
>             <!-- Need to remove the http headers which could confuse the http endpoint -->
>             <!-- send proxied request to real web service -->
>             <from id="_from1" uri="cxf:bean:servicioSS"/>
>             <!-- log answer from real web service -->
>             <!-- removeHeaders id="_removeHeaders1" pattern="CamelHttp*"/> -->
>             <to id="_to1" uri="log:input"/>
>             <to id="_to2" ref="callRealWebService"/>
>             <to id="_to3" uri="log:output"/>
>         </route>
>     </camelContext>
> </beans>
> 
> Application.java
> 
> @SpringBootApplication
> @ImportResource({"classpath:spring/camel-context.xml"})
> public class Application extends SpringBootServletInitializer {
> 
>     public static void main(String[] args) {
>         SpringApplication.run(Application.class, args);
>     }
> }
> 
> I don’t define any configuration into the application.yml, I reviewed in other forums that have to define the cxf.path but it is necessary? 
> 
> could you please help me.
> 
> Thanks.