Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

tSOAP

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

Labels (6)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

9 Replies
Anonymous
Not applicable
Author

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?

Anonymous
Not applicable
Author

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.

Anonymous
Not applicable
Author

Anonymous
Not applicable
Author

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

Anonymous
Not applicable
Author

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?

Anonymous
Not applicable
Author

Yes. I need to create a SOAP service to call another soap service.

 

 

Anonymous
Not applicable
Author

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/). 

Anonymous
Not applicable
Author

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.

 

Anonymous
Not applicable
Author

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