Package samples.proxy

Source Code of samples.proxy.ProxyService

/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package samples.proxy;

import org.apache.axis.AxisFault;
import org.apache.axis.Handler;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.SimpleTargetedChain;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPEnvelope;
import org.w3c.dom.Document;
import samples.transport.tcp.TCPSender;
import samples.transport.tcp.TCPTransport;

/**
* Proxy sample.  Relays message on to hardcoded URL.
* Soon, URL becomes configurable (via deployment?!);
* later, URL becomes specifiable in custom header.
*
* @author Rob Jellinghaus <robj@unrealities.com>
*/

public class ProxyService {
    /**
     * Process the given message, treating it as raw XML.
     */
    public void proxyService(SOAPEnvelope env1, SOAPEnvelope env2)
        throws AxisFault
    {
        try {
            // Get the current Message Context
            MessageContext msgContext = MessageContext.getCurrentContext();
           
            // Look in the message context for our service
            Handler self = msgContext.getService();
           
            // what is our target URL?
            String dest = (String)self.getOption("URL");
           
            // use the server's client engine in case anything has
            // been deployed to it
            Service service = new Service();
            service.setEngine( msgContext.getAxisEngine().getClientEngine() );
            Call    call = (Call) service.createCall();

            SimpleTargetedChain c = new SimpleTargetedChain(new TCPSender());
            // !!! FIXME
            //service.getEngine().deployTransport("tcp", c);
   
            // add TCP for proxy testing
            call.addTransportPackage("samples.transport");
            call.setTransportForProtocol("tcp", TCPTransport.class);
           
            // NOW set the client's URL (since now the tcp handler exists)
            call.setTargetEndpointAddress(new java.net.URL(dest));
   
            call.setRequestMessage(msgContext.getRequestMessage());
           
            call.invoke();
           
            Message msg = call.getResponseMessage();

            msgContext.setResponseMessage(msg);
        }
        catch( Exception exp ) {
            throw AxisFault.makeFault( exp );
        }
    }
}
TOP

Related Classes of samples.proxy.ProxyService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.