• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Apache Soap

 
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Just start getting into the details of it, and found
1. It does not mention any support to UDDI
2. Also in the section of Interoperability with Other SOAP Implementations in the User Guide, it has following comment
Apache SOAP is not WSDL aware and is unlikely to become so.
Does this hinder Apache Soap to be a viable Web Service framework?
Any comments or insights?
 
Author and all-around good cowpoke
Posts: 13078
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Apache SOAP is a project inherited from an IBM project that predates UDDI and WSDL - it seems to have been a learning experience for the team because they started an entirely new "AXIS" project that has a more modern design.
UDDI is a directory service that in theory will let you locate a SOAP service, but you have to use WSDL to configure a client once the service is found. Sun's recent XML "Pack" contains
Java API for XML Registries (which supposedly supports UDDI and exXML registries)
Bill
 
Ranch Hand
Posts: 104
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi, for the Apache soap 2.2, it supports for UDDI search, if U download the UDDI2.0 APIs from UDDI.org and also teh wsdl4J.
Apache SOAP came out before UDDI and WSDL, but IBM has announced recently that they will use the Axis SOAP or some other name which use SAX as the XML parser to improve the speed for parsing xml document.
But there're very few examples concerning this soap at the current time, I would suggest to use the apache soap.
take care: the Axis soap right now doesn't support for UDDI publishing!!!
Hope it helps,
Roy
 
Frank Lin
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks, William and Roy. I think I got pretty good idea now with your help.
 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Which SOAP do you recommend then? Apache's or IBM's....
 
Ranch Hand
Posts: 445
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Jeff C:
Which SOAP do you recommend then? Apache's or IBM's....


Hi, Jeff
I think Apache's and IBM's are the same. IBM's SOAP4J has been moved on to form Apache SOAP since April 2000.
Axix SOAP is another SOAP project lauched by Apache. "The intention is to create a more modular, more flexible, and higher-performing SOAP implementation (relative to Apache SOAP 2.0, for using SAX internally rather than DOM)". Axix SOAP may be called SOAP 3.0.
See Apache's web site.
Doug.
 
Ranch Hand
Posts: 220
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
I read an example of using Apache SOAP, the client doesn't use WSDL to send SOAP request. they just use the following code fragment :
public class CalcClient {
public static void main(String[] args) throws Exception {
URL url = new URL ("http://localhost:8080/soap/servlet/rpcrouter");
Integer p1 = new Integer(args[0]);
Integer p2 = new Integer(args[1]);

/***********************************************************/
// Build the call.
Call call = new Call();
call.setTargetObjectURI("urn njavaserver");
call.setMethodName("subtract");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Vector params = new Vector();
params.addElement(new Parameter("p1", Integer.class, p1, null));
params.addElement(new Parameter("p2", Integer.class, p2, null));
call.setParams (params);
// make the call: note that the action URI is empty because the
// XML-SOAP rpc router does not need this. This may change in the
// future.
Response resp = call.invoke(url, "" );
/*********************************************************************/
// Check the response.
if ( resp.generatedFault() ) {
Fault fault = resp.getFault ();
System.out.println("The call failed: ");
System.out.println("Fault Code = " + fault.getFaultCode());
System.out.println("Fault String = " + fault.getFaultString());
}
else {
Parameter result = resp.getReturnValue();
System.out.println(result.getValue());
}
}
}
deployment descriptor :
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
id="urn njavaserver">
<isd rovider type="java"
scope="Application"
methods="add subtract">
<isd:java class="onjava.CalcService"/>
</isd rovider>
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListener>
</isd:service>
web services method :
package onjava;
public class CalcService {
public int add(int p1, int p2) {

return p1 + p2;
}
public int subtract(int p1, int p2) {
return p1 - p2;
}
}
It seems it doesn't use WSDL, but still can send SOAP request to SOAP server. Therefore, right now, I am confused that whether WSDL is necessary in a web services application.

Please help.
Benson
 
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

It seems it doesn't use WSDL, but still can send SOAP request to SOAP server. Therefore, right now, I am confused that whether WSDL is necessary in a web services application.

The purpose of a WSDL document is to tell someone how to use some particular web service (what kind of input and output, where in the network to send the request, and so on). If the client knows these details already, there's no need to look up the WSDL and inspect it for that same information.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic