dims 01/06/19 09:03:48
Modified: webapp/docs/samples/soap soap-lib.xsl soap.xml
Added: lib axis-samples.jar axis.jar
Log:
- Start using Axis for the SOAP sample.
- Tested only with Tomcat 3.2.X so far.
Revision Changes Path
1.2 +491 -0 xml-cocoon2/lib/axis-samples.jar
<<Binary file>>
1.2 +1180 -0 xml-cocoon2/lib/axis.jar
<<Binary file>>
1.3 +40 -59 xml-cocoon2/webapp/docs/samples/soap/soap-lib.xsl
Index: soap-lib.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/docs/samples/soap/soap-lib.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- soap-lib.xsl 2001/06/15 16:28:58 1.2
+++ soap-lib.xsl 2001/06/19 16:03:45 1.3
@@ -19,11 +19,12 @@
<xsp:include>java.net.*</xsp:include>
<xsp:include>java.util.*</xsp:include>
- <!-- Apache soap support -->
- <xsp:include>org.apache.soap.util.xml.*</xsp:include>
- <xsp:include>org.apache.soap.*</xsp:include>
- <xsp:include>org.apache.soap.rpc.*</xsp:include>
-
<xsp:include>org.apache.soap.transport.http.*</xsp:include>
+ <!-- Apache Axis support -->
+ <xsp:include>org.apache.axis.*</xsp:include>
+ <xsp:include>org.apache.axis.client.*</xsp:include>
+
<xsp:include>org.apache.axis.client.http.*</xsp:include>
+ <xsp:include>org.apache.axis.utils.*</xsp:include>
+ <xsp:include>org.apache.axis.encoding.*</xsp:include>
</xsp:structure>
<xsl:apply-templates/>
@@ -35,67 +36,47 @@
</xsl:template>
<xsl:template match="soap:request">
- <xsl:variable name="url"><xsl:value-of
select="@endpoint"/></xsl:variable>
- <xsl:variable name="proxyhost"><xsl:value-of
select="@proxyhost"/></xsl:variable>
- <xsl:variable name="proxyport"><xsl:value-of
select="@proxyport"/></xsl:variable>
+ <xsl:variable name="endpoint"><xsl:value-of
select="@endpoint"/></xsl:variable>
+ <xsl:variable name="description"><xsl:value-of
select="@description"/></xsl:variable>
-
<!-- Do not process xp:text -->
<xsl:for-each
select="./SOAP-ENV:Envelope/SOAP-ENV:Body/*[name()!='xsp:text']">
<xsp:logic>
- {
-
- Call call = new Call ();
-
- // Service uses standard SOAP encoding
- String encodingStyleURI =
org.apache.soap.Constants.NS_URI_SOAP_ENC;
- call.setEncodingStyleURI(encodingStyleURI);
-
- // Set service locator parameters
- call.setTargetObjectURI("<xsl:value-of
select="namespace-uri()"/>");
- call.setMethodName("<xsl:value-of select="local-name()"/>");
-
- // Create input parameter vector
- Vector params = new Vector ();
-
- // All parms
- <!-- TODO: Add support for mapping java parameters to soap
parameters -->
- <xsl:for-each select="*[name() != 'xsp:text']">
- <xsl:variable name="text"><xsl:value-of
select="./text()"/></xsl:variable>
-
- params.addElement(new Parameter("<xsl:value-of
select="name()"/>", String.class, "<xsl:value-of select="xsp:text"/>", null));
- </xsl:for-each>
-
- call.setParams (params);
-
- // Invoke the service ....
try {
-
- URL url = new URL("<xsl:value-of select="$url"/>");
- Response resp = call.invoke(url,"");
-
- // ... and evaluate the response
- if (resp.generatedFault ()) {
- Fault fault = resp.getFault();
- <xsp:content>
-
<faultcode><xsp:expr>fault.getFaultCode()</xsp:expr></faultcode>
-
<faultstring><xsp:expr>fault.getFaultString()</xsp:expr></faultstring>
- </xsp:content>
- } else {
- <!-- TODO: Output response envelope in XML -->
- <xsp:content>
-
<response><xsp:expr>resp.toString()</xsp:expr></response>
- </xsp:content>
- }
- } catch (MalformedURLException ex) {
- <xsp:content>
-
<malformedurlexception><xsp:expr>ex.getMessage()</xsp:expr></malformedurlexception>
- </xsp:content>
- } catch (SOAPException ex) {
+ // Create input parameter vector
+ Vector params = new Vector ();
+ String action = "<xsl:value-of select="namespace-uri()"/>";
+
+ // All parameters.
+ <!-- TODO: Add support for mapping java parameters to soap
parameters -->
+ <xsl:for-each select="*[name() != 'xsp:text']">
+ <xsl:variable name="text"><xsl:value-of
select="./text()"/></xsl:variable>
+ params.addElement("<xsl:value-of select="xsp:text"/>");
+ </xsl:for-each>
+
+ ServiceClient call = new ServiceClient (
+ new HTTPTransport("<xsl:value-of select="$endpoint"/>",
action));
+ ServiceDescription sd = new ServiceDescription("<xsl:value-of
select="$description"/>", true);
+ call.setServiceDescription(sd);
+
+ Object ret = call.invoke( action, "<xsl:value-of
select="local-name()"/>", params.toArray() );
+
+ if (ret instanceof String) {
+ System.out.println("Received problem response from server: "+ret);
+ throw new AxisFault("", (String)ret, null, null);
+ }
+ <xsp:content>
+ <response><xsp:expr>ret.toString()</xsp:expr></response>
+ </xsp:content>
+ } catch (Exception e) {
+ if ( e instanceof AxisFault ) {
+ ((AxisFault)e).dump();
+ } else {
+ e.printStackTrace();
+ }
<xsp:content>
-
<soapexception><xsp:expr>ex.getMessage()</xsp:expr></soapexception>
+
<soapexception><xsp:expr>e.getMessage()</xsp:expr></soapexception>
</xsp:content>
- }
}
</xsp:logic>
</xsl:for-each>
1.3 +23 -1 xml-cocoon2/webapp/docs/samples/soap/soap.xml
Index: soap.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/docs/samples/soap/soap.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- soap.xml 2001/06/15 16:28:59 1.2
+++ soap.xml 2001/06/19 16:03:45 1.3
@@ -5,8 +5,30 @@
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
<page>
+ <call source="axis">
+ <soap:request description="stockQuotes"
endpoint="http://localhost:8080/cocoon/servlet/org.apache.axis.transport.http.AxisServlet">
+ <SOAP-ENV:Envelope
xsi="http://www.w3.org/1999/XMLSchema-instance"
xsd="http://www.w3.org/1999/XMLSchema">
+ <SOAP-ENV:Body >
+ <ns1:getQuote
xmlns:ns1="urn:xmltoday-delayed-quotes" xmlns_ns1="urn:xmltoday-delayed-quotes"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
+ <ticker
xsi_type="xsd:string">SUNW</ticker>
+ </ns1:getQuote>
+ </SOAP-ENV:Body>
+ </SOAP-ENV:Envelope>
+ </soap:request>
+ </call>
+ <call source="axis">
+ <soap:request description="stockQuotes"
endpoint="http://localhost:8080/cocoon/servlet/org.apache.axis.transport.http.AxisServlet">
+ <SOAP-ENV:Envelope
xsi="http://www.w3.org/1999/XMLSchema-instance"
xsd="http://www.w3.org/1999/XMLSchema">
+ <SOAP-ENV:Body >
+ <ns1:getQuote
xmlns:ns1="urn:xmltoday-delayed-quotes" xmlns_ns1="urn:xmltoday-delayed-quotes"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
+ <ticker
xsi_type="xsd:string">IBM</ticker>
+ </ns1:getQuote>
+ </SOAP-ENV:Body>
+ </SOAP-ENV:Envelope>
+ </soap:request>
+ </call>
<call source="xmethods">
- <soap:request
endpoint="http://services.xmethods.net:80/soap/servlet/rpcrouter">
+ <soap:request description="getTemp"
endpoint="http://services.xmethods.net:80/soap/servlet/rpcrouter">
<SOAP-ENV:Envelope
xsi="http://www.w3.org/1999/XMLSchema-instance"
xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body >
<ns1:getTemp
xmlns:ns1="urn:xmethods-Temperature" xmlns_ns1="urn:xmethods-Temperature"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]