0

I am new to TIBCO Business Studio and the SOAP language. I need some help on this project I'm working on. I keep getting errors related to SOAP Action.

This is the raw SOAP request on SOAPUI:

POST http://127.0.0.1:25001/MyInterface/ HTTP/1.1
Connection: close
Accept-Encoding: gzip,deflate
SOAPAction="http://tempuri.org/MyInterface/SomeMethod"
Content-Type: application/soap+xml
Content-Length: 759
Host: 127.0.0.1:25001
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/">   
      <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
            <wsa:Action>http://tempuri.org/MyInterface/SomeMethod</wsa:Action>
            <wsa:To>http://127.0.0.1:25001/MyInterface/</wsa:To> //when I loopback
            //<wsa:To>http://SomeWebservice:Port/MyInterface</wsa:To> //when connecting directly to web service
      </soap:Header>   
      <soap:Body>   
           <tem:SomeMethod>   
                   <tem:param1>ABC</tem:param1> 
                   <tem:param2>XYZ</tem:param2>
           </tem:SomeMethod>   
      </soap:Body>
</soap:Envelope>

This is the raw error response that I keep getting:

<soap-env:Envelope xmlns:soap-env="http://www.w3.org/2003/05/soap-envelope">   
  <soap-env:Header/>   
  <soap-env:Body>     
        <soap-env:Fault>         
                <soap-env:Code>           
                         <soap-env:Value>soap-env:Receiver</soap-env:Value>         
                </soap-env:Code>         
                <soap-env:Reason>           
                         <soap-env:Text xml:lang="en-US">soapAction is required</soap-env:Text>         
                </soap-env:Reason>         
                <soap-env:Detail>           
                         <tibco:myFaultDetail xmlns:tibco="http://tibcouri/">java.lang.RuntimeException: soapAction is required
at com.tibco.amf.binding.soap.runtime.transport.http.SoapHttpInboundEndpoint.processHttpPost(SoapHttpInboundEndpoint.java:346)
at com.tibco.amf.binding.soap.runtime.transport.http.SoapHttpServer.doPost(SoapHttpServer.java:195)at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1213)at com.tibco.governance.pa.amxcomponent.pep.http.HttpPepFilter.doFilter(HttpPepFilter.java:126)
at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1205)
at com.tibco.amf.implementation.common.httpfilter.GenericComponentFilter.doFilter(GenericComponentFilter.java:65)
at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1205)at com.tibco.amf.hpa.tibcohost.jetty.internal.ConnectorFilter.doFilter(ConnectorFilter.java:49)
at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1205)at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:928)at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)at  org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)
                         </tibco:myFaultDetail>         
                </soap-env:Detail>    
        </soap-env:Fault>   
  </soap-env:Body>
</soap-env:Envelope>

Sometimes I get this error too:

The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/MyInterface/SomeMethod'.

May I know what causes these problems and which part of TIBCO Business Studio should I look into? I specified a SOAPAction in the HTTP Header and also included one in the SOAP header. I'm not sure why TIBCO's Mediation component fail to detect them.

These errors occur when I do loopbacks to localhost. Otherwise if my endpoint URI is the actual web service, it will work fine.

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 652
Content-Type: application/soap+xml; charset=utf-8
Server: Microsoft-IIS/7.5
Access-Control-Allow-Origin: *
Set-Cookie: ASP.NET_SessionId=somejiberrish; path=/; HttpOnly
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST,GET,OPTIONS
Date: Mon, 02 Jun 2014 03:11:12 GMT
Connection: close

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
    <a:Action s:mustUnderstand="1">http://tempuri.org/MyInterface/SomeMethodResponse</a:Action>
</s:Header>
<s:Body>
    <SomeMethodResponse xmlns="http://tempuri.org/">
        <SomeMethodResult xmlns:b="http://schemas.datacontract.org/2004/07/SomeWebService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">   
              <b:response1>-1</b:response1>
              <b:response2>-1</b:response2>
       </SomeMethodResult>
   </SomeMethodResponse>
</s:Body>
</s:Envelope>

Please help me and thanks for your help!

user3686831
  • 1
  • 1
  • 1

1 Answers1

0

The reason is that some TIBCO products expect the HTTP Header SOAPAction to be spelled in camel case: SoapAction, while other products or releases of the same product require the header written in lower camel case, as in soapAction. Try all three variations and let us know which one worked for you.

If this does not help, please let us know which TIBCO product you are using. TIBCO BusinessStudio is just an Eclipse based IDE used to configure many other TIBCO products (AMX SG & SB, BW, BPM, iProcess, etc).

HTH,

Hendrik

hsiegeln
  • 116
  • 4
  • Hi Hendrik, I'm using TIBCO Business Studio - AMX SB. I have tried all these variations (on SOAPUI) but it still does not work. The error occurs on the Receiver side so is it possible that the SOAP header is removed by the mediation component? Thanks! – user3686831 Jun 05 '14 at 09:26
  • 'SoapAction' is Pascal case, while 'soapAction' is Camel case. Not sure what lower camel case is. – M.Babcock Aug 26 '14 at 12:35