Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
I am a new bee to Talend. Below is my scenario and queries:
Scenario:
I have a WSDL with xml version 1.0. I need to use SOAP as the protocol to retrieve the information.
So I am planning to use tSOAP component. I have 10 different SOAP actions.
Queries:
1. Can someone suggest me SOAP equivalents of REST component tRESTRequest, tRESTclient and tRestResponse?
2. Since I have 11 different SOAP actions, should I be using 11 tSOAP component? ( 1 for each action?)
3. If I use tSOAP, then the option to choose the soap version is either 1.1 or 1.2. But my WSDL shows it as 1.0. how do I proceed further?
Thanks in advance
OK, you will need to use either the tESBConsumer (https://help.talend.com/reader/KxVIhxtXBBFymmkkWJ~O4Q/GFvy7HPw~kxppq8OC24JBg) component or the tSOAP (https://help.talend.com/reader/MjIZDoU6r0vLbCpGh5GAcg/ErSRRvB~IVapr5OhoPamGQ) component.
I think you might have misunderstood a few things.
@chithrakoushik wrote:
1. Can someone suggest me SOAP equivalents of REST component tRESTRequest, tRESTclient and tRestResponse?
tRESTRequest and tRESTResponse are for creating a REST service. tRESTClient is for calling REST services. There is also tREST. For creating SOAP services you have tESBProviderRequest, tESBProviderResponse and tESBProviderFault. To call SOAP services you have tSOAP and tESBConsumer.
@chithrakoushik wrote:
2. Since I have 11 different SOAP actions, should I be using 11 tSOAP component? ( 1 for each action?)
Are you intending to build these actions or use them? For example, does the service already exist?
@chithrakoushik wrote:
3. If I use tSOAP, then the option to choose the soap version is either 1.1 or 1.2. But my WSDL shows it as 1.0. how do I proceed further?
I suspect you are talking about the XML version here and not the SOAP version. Can you post your WSDL?
Hi,
Thanks a lot.
1. I need to call the SOAP service. 11 different SOAP actions exists. So I was thinking if we need to have 11 components ( 1 for each action).
Yes. The XML version is 1.0.
OK, you will need to use either the tESBConsumer (https://help.talend.com/reader/KxVIhxtXBBFymmkkWJ~O4Q/GFvy7HPw~kxppq8OC24JBg) component or the tSOAP (https://help.talend.com/reader/MjIZDoU6r0vLbCpGh5GAcg/ErSRRvB~IVapr5OhoPamGQ) component.
Thanks.
This is my scenario:
We have talend jobs to do few functionalities. Those are individual jobs. Now the purpose is to create a gateway job, which authenticates the SOAP requests and upon correct authentication, allows the individual jobs to run.
I used the following components
tESBProviderRequest - tRestClient - tESBConsumer - tESBProviderResponse
I need to keep listening to any request ( tESBProviderRequest) .
When I get the request, I am passing it on to tRestClient( OAuth Authentication)
When the authentication is done, the request is passed on to tESBConsumer ( contains the endpoint and one service details).
Queries:
1. Is my flow/logic correct?
2. There are 11 functionalities. So how do I do it?
I need the tESBProviderRequest to listen to the request, authenticate the same and then route to 11 different channels based on the operation that I require. How do I do it?
3. I need to send the response. like Ok and custom error message.
Thanks in advance
1) You said that the service exists....but this sounds like you are creating a service. Are you creating a service to call other SOAP services?
2) Why are you using the tRESTClient with a SOAP service? This seems odd. Are you creating a SOAP service to use REST services?
Yes. I need to create a SOAP service to call another soap service.
OK, this is going to be some learning curve for you I feel. Try following this tutorial and see how you go (https://cleverbuilder.com/articles/soap-service/).
Unfortunately that page is no longer available.
I have a similar case, 7 different Salesforce outbound messages (SOAP messages) that need to hit one endpoint and then route the messages to a ActiveMQ queue, one for each message.
I don't know how to do this though.
Hi,
I created a mock service in SOAPUI and its working fine. When I try to call same mock service through talend im getting below error. Could you please help?
Starting job Client at 11:20 17/01/2020.
[statistics] connecting to socket on port 3929
[statistics] connected
Exception in component tESBConsumer_2 (Client)
org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>Server</faultcode>
<faultstring>Missing operation for soapAction [http://healthedge.com/submit] and body element [{http://schemas.xmlsoap.org/soap/envelope/}Envelope] with SOAP Version [SOAP 1.1]</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
at org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:96)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:827)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1695)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1572)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1373)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:673)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:442)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:343)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:316)
at local_project.client_0_1.Client$GenericConsumer.invoke(Client.java:716)
at local_project.client_0_1.Client.tFileInputXML_1Process(Client.java:10907)
at local_project.client_0_1.Client.runJobInTOS(Client.java:11737)
at local_project.client_0_1.Client.main(Client.java:11588)
[WARN ]: org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {http://healthedge.com}InstitutionalClaim#{http://healthedge.com}submit has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Response was of unexpected text/html ContentType. Incoming portion of HTML stream: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>Server</faultcode>
<faultstring>Missing operation for soapAction [http://healthedge.com/submit] and body element [{http://schemas.xmlsoap.org/soap/envelope/}Envelope] with SOAP Version [SOAP 1.1]</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
at org.apache.cxf.interceptor.StaxInInterceptor.handleMessage(StaxInInterceptor.java:96)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:827)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1695)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1572)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1373)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:673)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:533)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:442)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:343)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:316)
at local_project.client_0_1.Client$GenericConsumer.invoke(Client.java:716)
at local_project.client_0_1.Client.tFileInputXML_1Process(Client.java:10907)
at local_project.client_0_1.Client.runJobInTOS(Client.java:11737)
at local_project.client_0_1.Client.main(Client.java:11588)
[statistics] disconnected
Job Client ended at 11:20 17/01/2020. [exit code=1]
components used are:
tfileXMLinput->txmlMap_1->tESBConsumer_2->tlog3