Browse Source

Change DSMLGW to work with Axis1.2rc3

David Boreham 20 years ago
parent
commit
24d4adc364

+ 1 - 0
ldap/clients/dsmlgw/Makefile

@@ -14,6 +14,7 @@ include $(BUILD_ROOT)/nsconfig.mk
 include $(BUILD_ROOT)/ldap/javarules.mk
 
 all: $(ANT_DEP) $(LDAPJDK_DEP)
+	cp $(CLASS_DEST)/$(AXIS_REL_DIR)/lib/axis.jar $(CLASS_DEST)
 	$(ANT) 
 
 clean: 	

+ 2 - 0
ldap/clients/dsmlgw/build.xml

@@ -23,6 +23,7 @@
 <property name="saaj.jar"  value="${globaldist.dir}/saaj.jar"/>
 <property name="xercesImpl.jar"  value="${globaldist.dir}/xercesImpl.jar"/>
 <property name="xmlParserAPIs.jar"  value="${globaldist.dir}/xml-apis.jar"/>
+<property name="axis.jar"        value="${globaldist.dir}/axis.jar"/>
 
 <path id="class.path">
 <pathelement location="${ldapjdk.jar}"/>
@@ -33,6 +34,7 @@
 
 <pathelement location="${xercesImpl.jar}"/> 
 <pathelement location="${xmlParserAPIs.jar}"/>
+<pathelement location="${axis.jar}"/>
 </path>
 
 <property name="build.dir"      value="${mcom.root}/built/dsmlgw"/>

+ 2 - 36
ldap/clients/dsmlgw/misc/server-config.wsdd

@@ -28,42 +28,8 @@
  </requestFlow>
  <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 
- <service name="dsmlgw" provider="java:RPC">
-<!-- this is for the javax.xml.rpc.handler's -->
-<handlerInfoChain>
-        <handlerInfo classname="com.netscape.dsml.gateway.gatewayHandler">
-                <parameter name="server" value="bison"/>
-                <parameter name="port" value="38900"/>
-                <parameter name="dn" value="ou=People,dc=mtbrook,dc=bozemanpass,dc=com"/>
-                <parameter name="foo" value="bar"/>
-                <header qname="QNAME" xmlns:ns="DSML2core"/>
-        </handlerInfo>
-        <role soapActorName="URI"/>
-</handlerInfoChain>
-
-
-  <operation name="process" returnQName="returnqname" returnType="ns1:DataHandler" xmlns:ns1="dsmlgw">
-   <parameter name="in1" type="ns1:DataHandler"/>
-  </operation>
-  <parameter name="allowedMethods" value="process batchRequest"/>
-  <parameter name="className" value="com.netscape.dsml.gateway.gatewayService"/>
-  <typeMapping deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns2:DataHandler" serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory" type="java:javax.activation.DataHandler" xmlns:ns2="DSMLService"/>
- </service>
-
-
- <service name="Version" provider="java:RPC">
-  <parameter name="allowedMethods" value="getVersion"/>
-  <parameter name="className" value="org.apache.axis.Version"/>
- </service>
- <service name="urn:xmltoday-delayed-quotes" provider="java:RPC">
-  <requestFlow name="checks">
-   <handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
-   <handler type="java:org.apache.axis.handlers.SimpleAuthorizationHandler"/>
-  </requestFlow>
-  <parameter name="allowedRoles" value="user1,user2"/>
-  <parameter name="allowedMethods" value="getQuote test"/>
-  <parameter name="wsdlServicePort" value="GetQuote"/>
-  <parameter name="className" value="samples.stock.StockQuoteService"/>
+ <service name="dsmlgw" provider="Handler">
+ 	<parameter name="handlerClass" value="com.netscape.dsml.gateway.gatewayHandler"/>
  </service>
 
  <transport name="http">

+ 20 - 20
ldap/clients/dsmlgw/src/com/netscape/dsml/gateway/gatewayHandler.java

@@ -11,7 +11,6 @@ import javax.xml.namespace.QName;
 import javax.xml.parsers.*;
 import javax.xml.rpc.handler.Handler;
 import javax.xml.rpc.handler.HandlerInfo;
-import javax.xml.rpc.handler.MessageContext;
 import javax.xml.rpc.handler.soap.SOAPMessageContext;
 import javax.xml.soap.Name;
 import javax.xml.soap.SOAPEnvelope;
@@ -27,8 +26,12 @@ import org.w3c.dom.Document;
 import org.xml.sax.*;
 import org.w3c.dom.*;
 import javax.xml.soap.*;
+import org.apache.axis.AxisFault;
+import org.apache.axis.Message;
+import org.apache.axis.MessageContext;
+import org.apache.axis.handlers.BasicHandler;
 
-public class gatewayHandler implements Handler {
+public class gatewayHandler  extends BasicHandler {
     private HandlerInfo handlerInfo;
     static private javax.xml.soap.MessageFactory messageFactory ;
     static private javax.xml.soap.SOAPFactory sef ;
@@ -44,8 +47,18 @@ public class gatewayHandler implements Handler {
     }
     
     
+    public void invoke(MessageContext context) throws AxisFault {
+	    if (context.getPastPivot() == false) {
+	    	handleRequest(context);
+	    }
+	 }
     
-    
+    public void cleanup() {
+        super.cleanup();
+        destroy();
+    }
+
+	 
     public boolean handleRequest(MessageContext context) {
     /*
      * this section will set user, pwd, if it came via a http authentication header
@@ -82,7 +95,7 @@ public class gatewayHandler implements Handler {
             }
         }
         
-        SOAPMessage out_m = null;
+        org.apache.axis.Message out_m = null;
         SOAPEnvelope out_env = null;
         javax.xml.soap.SOAPBody out_body = null;
         javax.xml.soap.SOAPElement out_fResponse = null;
@@ -92,7 +105,7 @@ public class gatewayHandler implements Handler {
             javax.xml.soap.SOAPEnvelope se =  sp.getEnvelope();
             javax.xml.soap.SOAPBody sb = se.getBody();
             
-            out_m = messageFactory.createMessage();
+            out_m= new Message(context.getRequestMessage().getSOAPEnvelope());
             out_env = out_m.getSOAPPart().getEnvelope();
             out_body = out_env.getBody();
             out_fResponse = out_body.addBodyElement(out_env.createName("batchResponse"));
@@ -155,26 +168,12 @@ public class gatewayHandler implements Handler {
          * SOAPResponse message, it will be sent as soon as the request
          * turns the other way into a reponse.
          */
-        context.setProperty("RESPONSE",  out_m);
+        context.setResponseMessage( (Message)out_m  );
         return false;
         
     }
     
-    /**
-     * @see javax.xml.rpc.handler.Handler#handleResponse(MessageContext)
-     */
-    public boolean handleResponse(MessageContext context) {
-        SOAPMessage m;
-        m = (SOAPMessage) context.getProperty("RESPONSE");
-        
-        try {
-            ((SOAPMessageContext)context).setMessage(m);
-        }
-        catch (Exception e) {
-        }
         
-        return true;
-    }
     
     public boolean handleFault(MessageContext context) {
         return false;
@@ -202,4 +201,5 @@ public class gatewayHandler implements Handler {
         
     }
     
+ 
 }