The SOAP specification does not specify how the client and server agree on how the desired action is specified. Some implementations, such as .NET, rely on the SOAPAction header. That's great for HTTP, but not every transport has headers like HTTP does. The original Apache SOAP developers used the namespace of the first child of the SOAP Body because that is transport independent, and it allows multiple services to reside at a single endpoint.
On 16 Jan 2003 at 14:58, Jesus M. Salvo Jr. wrote: > > Okay ... I was able to workaround this problem by undeploying the > service and re-deploying it with a different deployment descriptor like > this: > > <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" > id="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0" > type="message"> > <isd:provider type="java" scope="Application" methods="SubmitReq"> > <isd:java class="com.mig.mms.mm7.V5_4_0.MMServerReceiverImpl"/> > </isd:provider> > > <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener> > > </isd:service> > > Question is ... why does Apache-SOAP uses the xmlns to match the id of > the service? > > Jesus M. Salvo Jr. wrote: > > > > > Using Tomcat 4.1 + Soap 2.3.1 > > > > I know this is in the FAQ ... but I am still confused. > > You will see from below that SOAP server is complaining that the > > service "xyz" is unknown .... but "xyz" is an XML namespace!! > > * Why would it think that the namespace in the SOAP message that I > > sent is the service? > > * As a general question, how does Apache SOAP identify the message > > service being requested anyway? > > * How can u turn on debugging or versbose information on Tomcat 4.1 so > > that I can see that Apache-SOAP is doing? > > > > Note that I have added jaxp-api.jar, dom.jar, sax.jar, > > xercesImpl.jar, into $TOMCAT_HOME/common/lib/ > > > > Here are the steps that I made: > > > > 1) I add a JAR called mm7.jar and placed it in > > webapps/soap/WEB-INF/lib/. This JAR contains the class mentioned on > > step [2] when deploying the SOAP service. > > > > 2) I have deployed a SOAP messaging service with the following > > deployment descriptor: > > > > <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" > > id="urn:mmserver" type="message"> > > <isd:provider type="java" scope="Application" methods="SubmitReq"> > > <isd:java > > class="com.mig.mms.mm7.V5_4_0.MMServerReceiverImpl"/> > > </isd:provider> > > > > <isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener> > > > > </isd:service> > > > > Ran: > > java org.apache.soap.server.ServiceManagerClient > > http://192.168.0.82:8080/soap/servlet/rpcrouter deploy mm7.xml > > > > No errors reported ... and a list of the services show: > > > > Deployed Services: > > urn:mmserver > > > > 3) From a client, I send the following to > > http://192.168.0.82:8080/soap/servlet/messagerouter: > > > > <?xml version='1.0' encoding='UTF-8'?> > > <SOAP-ENV:Envelope > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <SOAP-ENV:Header> > > <mm7:TransactionID > > >xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0">123</mm7:TransactionID> > > > > > </SOAP-ENV:Header> > > <SOAP-ENV:Body> > > <mm7:SubmitReq > > >xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0"> > > > > > <MM7Version>5.4.0</MM7Version> > > <SenderIdentification> > > <VASPID>TestAccount</VASPID> > > <VASID>TestPass</VASID> > > <SenderAddress>+6161616161</SenderAddress> > > </SenderIdentification> > > <Recipients/> > > <ServiceCode>er2sdf</ServiceCode> > > <MessageClass>Informational</MessageClass> > > <TimeStamp>2003-01-16T13:17:41+10:00</TimeStamp> > > <EarliestDeliveryTime>2003-01-16T13:17:41+10:00</EarliestDeliveryTime> > > <ExpiryDate>2003-01-16T13:17:41+10:00</ExpiryDate> > > <DeliveryReport>false</DeliveryReport> > > <Priority>Normal</Priority> > > <DistributionIndicator>false</DistributionIndicator> > > </mm7:SubmitReq> > > </SOAP-ENV:Body> > > </SOAP-ENV:Envelope> > > > > 4) Here is the response that I get: > > > > HTTP/1.1 500 Internal Server Error > > Set-Cookie: JSESSIONID=CB8DCEFB04F423852D2B3281379A689D; Path=/soap > > Content-Type: text/xml; charset=utf-8 > > Content-Length: 531 > > Date: Thu, 16 Jan 2003 02:14:54 GMT > > Server: Apache Coyote/1.0 > > Connection: close > > > > <?xml version='1.0' encoding='UTF-8'?> > > <SOAP-ENV:Envelope > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <SOAP-ENV:Body> > > <SOAP-ENV:Fault> > > <faultcode>SOAP-ENV:Server</faultcode> > > <faultstring>service > > >'http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0' > > > unknown</faultstring> > > <faultactor>/soap/servlet/messagerouter</faultactor> > > </SOAP-ENV:Fault> > > </SOAP-ENV:Body> > > </SOAP-ENV:Envelope> > > > > > > > -- > Jesus M. Salvo Jr. > Mobile Internet Group Pty Ltd > (formerly Softgame International Pty Ltd) > M: +61 409 126699 > T: +61 2 94604777 > F: +61 2 94603677 > > PGP Public key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC0BA5348 > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > Scott Nichol -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>