You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ru...@apache.org on 2001/06/11 22:23:48 UTC
cvs commit: xml-axis/java/src/org/apache/axis/transport/local LocalDispatchHandler.java
rubys 01/06/11 13:23:48
Modified: java/src/org/apache/axis/client ServiceClient.java
java/src/org/apache/axis/registries
DefaultHandlerRegistry.java
Added: java/src/org/apache/axis/transport/local
LocalDispatchHandler.java
Log:
Get doLocal working again - except for jws. A separate note to the
mailing list will discuss what needs to be done.
Revision Changes Path
1.9 +10 -0 xml-axis/java/src/org/apache/axis/client/ServiceClient.java
Index: ServiceClient.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/ServiceClient.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ServiceClient.java 2001/06/11 18:59:22 1.8
+++ ServiceClient.java 2001/06/11 20:23:45 1.9
@@ -68,6 +68,7 @@
import org.apache.axis.encoding.DeserializerFactory;
import org.apache.axis.registries.HandlerRegistry;
import org.apache.axis.message.DebugHeader;
+import org.apache.axis.transport.local.LocalDispatchHandler;
import org.w3c.dom.* ;
@@ -298,6 +299,15 @@
public void invoke() throws AxisFault {
Debug.Print( 1, "Enter: ClientMessage::invoke(MessageContext)" );
+ // If local is specified, override the transport handlers Once there
+ // is a convenient way for the client to specify the transport
+ // handler, we might want to consider removing this code and doLocal
+ // entirely.
+ if (doLocal) {
+ msgContext.setProperty(MessageContext.TRANS_INPUT, "LocalSender");
+ msgContext.clearProperty(MessageContext.TRANS_OUTPUT);
+ }
+
// set up message context if there is a transport
if (transport != null) {
transport.setupMessageContext(msgContext, this, this.engine, doLocal);
1.10 +3 -1 xml-axis/java/src/org/apache/axis/registries/DefaultHandlerRegistry.java
Index: DefaultHandlerRegistry.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/registries/DefaultHandlerRegistry.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DefaultHandlerRegistry.java 2001/05/31 09:24:40 1.9
+++ DefaultHandlerRegistry.java 2001/06/11 20:23:47 1.10
@@ -70,6 +70,7 @@
import org.apache.axis.providers.java.MsgProvider;
import org.apache.axis.transport.http.* ;
+import org.apache.axis.transport.local.* ;
/**
*
@@ -138,7 +139,8 @@
}
else {
- this.add( "HTTPSender", new HTTPDispatchHandler() );
+ this.add( "HTTPSender", new HTTPDispatchHandler() );
+ this.add( "LocalSender", new LocalDispatchHandler() );
}
dontSave = false ;
1.1 xml-axis/java/src/org/apache/axis/transport/local/LocalDispatchHandler.java
Index: LocalDispatchHandler.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Axis" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.axis.transport.local;
import org.apache.axis.*;
import org.apache.axis.handlers.*;
import org.apache.axis.server.*;
import org.apache.axis.transport.http.*;
import org.apache.axis.utils.*;
/**
* This is meant to be used on a SOAP Client to call a SOAP server.
*
* @author Sam Ruby <ru...@us.ibm.com>
*/
public class LocalDispatchHandler extends BasicHandler {
private AxisServer server;
private MessageContext serverContext;
/**
* Allocate an embedded Axis server to process requests and initialize it.
*/
public void init() {
server = new AxisServer();
server.init();
serverContext = new MessageContext(server);
}
public void invoke(MessageContext clientContext) throws AxisFault {
Debug.Print( 1, "Enter: LocalDispatchHandler::invoke" );
// This should have already been done, but it doesn't appear to be
// something that can be relied on. Oh, well...
if (server == null) init();
// reset the request
serverContext.clearProperties();
serverContext.setServiceDescription(null);
serverContext.setTargetService(null);
// copy the request, and force its format to String in order to
// exercise the serializers.
serverContext.setRequestMessage(clientContext.getRequestMessage());
serverContext.getRequestMessage().getAs("String");
// copy soap action if it is present
String action = clientContext.getStrProp(HTTPConstants.MC_HTTP_SOAPACTION);
if (action != null) {
serverContext.setProperty(HTTPConstants.MC_HTTP_SOAPACTION, action);
serverContext.setProperty(MessageContext.TRANS_INPUT , "HTTPAction");
}
// invoke the request
server.invoke(serverContext);
// copy back the response, and force its format to String in order to
// exercise the deserializers.
clientContext.setResponseMessage(serverContext.getResponseMessage());
clientContext.getResponseMessage().getAs("String");
Debug.Print( 1, "Exit: LocalDispatchHandler::invoke" );
}
public void undo(MessageContext msgContext) {
Debug.Print( 1, "Enter: LocalDispatchHandler::undo" );
Debug.Print( 1, "Exit: LocalDispatchHandler::undo" );
}
};