⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpsender.java

📁 一个web service的开发工具
💻 JAVA
字号:
/* * 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.transport.tcp;import org.apache.axis.AxisFault;import org.apache.axis.Message;import org.apache.axis.MessageContext;import org.apache.axis.components.logger.LogFactory;import org.apache.axis.handlers.BasicHandler;import org.apache.commons.logging.Log;import java.io.BufferedInputStream;import java.io.OutputStream;import java.net.Socket;/** * This is meant to be used on a SOAP Client to call a SOAP server. * * @author Rob Jellinghaus (robj@unrealities.com) * @author Doug Davis (dug@us.ibm.com) */public class TCPSender extends BasicHandler {    static Log log =            LogFactory.getLog(TCPSender.class.getName());    public void invoke(MessageContext msgContext) throws AxisFault {        log.info( "Enter: TCPSender::invoke" );        /* Find the service we're invoking so we can grab it's options */        /***************************************************************/        String   targetURL = null ;        Message  outMsg    = null ;        String   reqEnv    = null ;        targetURL = msgContext.getStrProp( MessageContext.TRANS_URL);        try {            String   host   = msgContext.getStrProp(TCPTransport.HOST);            int      port   = Integer.parseInt(msgContext.getStrProp(TCPTransport.PORT));            byte[]   buf    = new byte[4097];            int      rc     = 0 ;            Socket             sock = null ;            sock    = new Socket( host, port );            log.info( "Created an insecure HTTP connection");            reqEnv  = (String) msgContext.getRequestMessage().getSOAPPartAsString();            //System.out.println("Msg: " + reqEnv);            BufferedInputStream inp = new BufferedInputStream(sock.getInputStream());            OutputStream  out  = sock.getOutputStream();            byte[] bytes = reqEnv.getBytes();            String length = "" + bytes.length + "\r\n";            out.write(length.getBytes());            out.write( bytes );            out.flush();            log.debug( "XML sent:" );            log.debug( "---------------------------------------------------");            log.debug( reqEnv );            if ( false ) {                // Special case - if the debug level is this high then something                // really bad must be going on - so just dump the input stream                // to stdout.                byte b;                while ( (b = (byte) inp.read()) != -1 )                    System.err.print((char)b);                System.err.println("");            }            outMsg = new Message( inp );            if (log.isDebugEnabled()) {                log.debug( "\nNo Content-Length" );                log.debug( "\nXML received:" );                log.debug( "-----------------------------------------------");                log.debug( (String) outMsg.getSOAPPartAsString() );            }            msgContext.setResponseMessage( outMsg );        }        catch( Exception e ) {            log.error( e );            e.printStackTrace();            throw AxisFault.makeFault(e);        }        log.info( "Exit: TCPSender::invoke" );    }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -