diff options
-rw-r--r-- | ldap/clients/dsmlgw/Makefile | 1 | ||||
-rw-r--r-- | ldap/clients/dsmlgw/build.xml | 2 | ||||
-rw-r--r-- | ldap/clients/dsmlgw/misc/server-config.wsdd | 38 | ||||
-rw-r--r-- | ldap/clients/dsmlgw/src/com/netscape/dsml/gateway/gatewayHandler.java | 40 |
4 files changed, 25 insertions, 56 deletions
diff --git a/ldap/clients/dsmlgw/Makefile b/ldap/clients/dsmlgw/Makefile index 1b05ebd7..77b3e081 100644 --- a/ldap/clients/dsmlgw/Makefile +++ b/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: diff --git a/ldap/clients/dsmlgw/build.xml b/ldap/clients/dsmlgw/build.xml index f2c2643d..aa9aaaa3 100644 --- a/ldap/clients/dsmlgw/build.xml +++ b/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"/> diff --git a/ldap/clients/dsmlgw/misc/server-config.wsdd b/ldap/clients/dsmlgw/misc/server-config.wsdd index 747e1478..aeed63e9 100644 --- a/ldap/clients/dsmlgw/misc/server-config.wsdd +++ b/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"> diff --git a/ldap/clients/dsmlgw/src/com/netscape/dsml/gateway/gatewayHandler.java b/ldap/clients/dsmlgw/src/com/netscape/dsml/gateway/gatewayHandler.java index 8777a9f0..de3a2ecd 100644 --- a/ldap/clients/dsmlgw/src/com/netscape/dsml/gateway/gatewayHandler.java +++ b/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 { } + } |