PDA

View Full Version : Web Service Error for SOAP


mehul_j_parikh
03-22-2004, 15:54
Hi All,

I am using WM 4.6. I am trying to create a simple SOAP webservice that will take a soap message and return Hello World. I am following all the guidelines but I get the following error.

http://<servername>/MyPackage.WSTestSoap:SOAPTest does not exist

The path is correct and there is a service named SOAPTest but the http request is not able to find it. Also note that the wsdl is not generating the port after the <servername> in the URL ( I am providing this). I hardcoded the port# still I get the same error.

I am using the default SOAP processor. Any ideas. Are there any fixes or something that I am missing? I am on 4.6 version with following fixes:

TNS_4-6_SP1_FIX_64, IS_4-6_SP1, TNS_4-6_FIX_33, IS_4-6_Fix145, IS_4-6_Fix107, IS_4-6_SP1_Fix77, IS_4-6_Fix122, TNS_4-6_FIX_6, IS_4-6_Fix140

Thanks

JZ

avkvprasad
07-20-2004, 19:25
Hi
I am having a similar problem. Any luck with yours???
Prasad

KrishnaS (Unregistered Guest)
07-21-2004, 10:10
I think the url should be
http://<servername>/MyPackage/WSTestSoap/SOAPTest

mcarlson
07-21-2004, 12:18
When you generated your WSDL did you choose Soap RPC style or Soap-Message (document/literal) style?

For document/literal, the Integration Server default soap processor (located at http://hostname:port/soap/default ) uses the namespace of the qualified name (QName) and the QName itself to locate the service to be invoked.

To see the the contents of the web services universal name registry execute pub.universalName:list. You should see an entry for every service for which the universal name property has been explicitly set. The default soap processor attempts to locate the service to invoke using the namespaceName and the localName of the soapRequest's QName.

For example, if your soap message contains a soap:body that looks like this:<font color="0000ff"><SOAP-ENV:Body>
<foo:employeeActionRequest xmlns:foo="http://WSDLTest"> </font>The IS default soap processor would attempt to find a service in the registry with a localName of <font color="0000ff">"employeeActionRequest"</font> and a namespaceName of <font color="0000ff">"http://WSDLTest"</font>.

If your web service connector or another soap client generates a soap message that omits the namespace prefix and namespace definition (the default behavior for webMethods Glue), the default soap processor will not be able to locate the service to invoke.

Assuming you are using document/literal, it appears that the IS default soap processor in your case can not locate a service with the universal name of http://somenamespace:yourServiceName.

What is the name of the "wrapper" Flow service that you are trying to invoke? What did you specify for its Universal name\namespace and Universal Name\local name settings? What soap client are you using?

You should also look at the soap request being generated by your soap client (assuming it is not IS). To do this put Apache Axis in your classpath, go to the command prompt and type:
<font color="0000ff">java org.apache.axis.utils.tcpmon 4444 <IS_HOSTNAME> <IS_PORTNUMBER></font>(To save time, I usually create a script to launch this for me called soapmonitor.cmd.)

Then change your soap client to post to port 4444 on your IS server instead of port 5555. You should see the soap request and reply messages.

Prasad, are you using IS 4.6 too or have you moved to 6.1?

Mark



(Message edited by mcarlson on July 21, 2004)