soapAction требуется сообщение об ошибке
Я новичок в TIBCO Business Studio и на языке SOAP. Мне нужна помощь в этом проекте, над которым я работаю. Я продолжаю получать ошибки, связанные с действием SOAP.
Это необработанный SOAP-запрос на 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>
Это необработанный ответ об ошибке, который я продолжаю получать:
<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>
Иногда я тоже получаю эту ошибку:
The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/MyInterface/SomeMethod'.
Могу ли я узнать, что вызывает эти проблемы и в какую часть TIBCO Business Studio мне следует обратиться? Я указал SOAPAction в заголовке HTTP, а также включил один в заголовок SOAP. Я не уверен, почему компонент посредничества TIBCO не может их обнаружить.
Эти ошибки возникают, когда я делаю петли на localhost. В противном случае, если мой URI конечной точки является действительным веб-сервисом, он будет работать нормально.
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>
Пожалуйста, помогите мне и спасибо за вашу помощь!
1 ответ
Причина в том, что некоторые продукты TIBCO ожидают заголовок HTTP SOAPAction
быть записанным в случае верблюда: SoapAction
в то время как другие продукты или выпуски того же продукта требуют заголовок, написанный в нижнем регистре верблюда, как в soapAction
, Попробуйте все три варианта и дайте нам знать, какой из них работает для вас.
Если это не поможет, сообщите нам, какой продукт TIBCO вы используете. TIBCO BusinessStudio - это просто интегрированная среда разработки на основе Eclipse, используемая для настройки многих других продуктов TIBCO (AMX SG & SB, BW, BPM, iProcess и т. Д.).
НТН,
Хендрик