plenty of examples assume you have both TCPSender and TCPReceiver configured in conf/axis2.xml <transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPServer"> <parameter name="port">6060</parameter> <!--If you want to give your own host address for EPR generation--> <!--uncommet following paramter , and set as you required.--> <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>--> </transportReceiver> <transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/> then assemble a quick test harness for your TCPSender and TCPServer (Receiver): //get the context org.apache.axis2.context.ConfigurationContext configContext=org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(Constants.TESTING_REPOSITORY, Constants.TESTING_REPOSITORY + "/conf/axis2.xml"); //create the echo Operation org.apache.axis2.description.AxisOperation opdesc = new org.apache.axis2.description.OutInAxisOperation(new javax.xml.namespace.QName("echoOMElement")); org.apache.axis2.client.Options options = new org.apache.axis2.client.Options(); //set the endpoint org.apache.axis2.addressing.EndpointReference targetEPR =new org.apache.axis2.addressing.EndpointReference("tcp://127.0.0.1:5556"+ "/axis2/services/EchoXMLService/echoOMElement"); options.setTo(targetEPR); options.setAction(operationName.getLocalPart()); options.setTransportInProtocol("tcp"); //OMFactory to create OMNamespaces and OMElements org.apache.axiom.om.OMFactory fac = org.apache.axiom.om.OMAbstractFactory.getOMFactory(); org.apache.axiom.om.OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my"); //assume any reference to <my:*> will associate my elements with http://localhost/my //create the method org.apache.axiom.om.OMElement method = fac.createOMElement("echoOMElement", omNs); //create the value org.apache.axiom.om.OMElement value = fac.createOMElement("myValue", omNs); //set the value text value.setText("Isaac Asimov, The Foundation Trilogy"); //right now references to echoOMElement so we need to add text of value to the method echoOMElement ..notice the similar name as the echo Operation method.addChild(value); //SOAPFactory to get Envelope org.apache.axiom.soap.SOAPFactory factory = org.apache.axiom.om.OMAbstractFactory.getSOAP11Factory(); //get the SOAP 1.1 envelope org.apache.axiom.soap.SOAPEnvelope envelope = factory.getDefaultEnvelope(); envelope.getBody().addChild(method); //client needs a Message to send and receive to awaiting service..lets create one here org.apache.axis2.context.MessageContext requestContext = new org.apache.axis2.context.MessageContext(); //associate the params from existing configContext to our new MessageContext requestContext.setConfigurationContext(configContext); javax.xml.namespace.QName serviceName = new javax.xml.namespace.QName("EchoXMLService"); javax.xml.namespace.QName operationName = new javax.xml.namespace.QName("echoOMElement"); //create the AxisService org.apache.axis2.description.AxisService clientService= clientService = Utils.createSimpleServiceforClient(serviceName, org.apache.axis2.engine.Echo.class.getName(), operationName); //apprise the MessageObject what our new org.apache.axis2.description.AxisService is requestContext.setAxisService(clientService); org.apache.axis2.description.AxisOperation opdesc = new org.apache.axis2.description.OutInAxisOperation(new javax.xml.namespace.QName("echoOMElement")); requestContext.setAxisOperation(opdesc); //apprise MessageObject what our SOAP 1.1. envelope is requestContext.setEnvelope(envelope); org.apache.axis2.client.ServiceClient sender = new org.apache.axis2.client.ServiceClient(configContext, clientService); //which options do we send sender.setOptions(options); org.apache.axis2.client.OperationClient opClient = sender.createClient(new javax.xml.namespace.QName("echoOMElement")); //which messageContext for sender client to transmit and receive opClient.addMessageContext(requestContext); opClient.setOptions(options); opClient.execute(true); //get the MessageContext response org.apache.axis2.context.MessageContext response = opClient.getMessageContext("In"); //get the response envelope org.apache.axiom.soap.SOAPEnvelope env = response.getEnvelope(); assertNotNull(env); // The element in the body should be an OMSourcedElement org.apache.axiom.om.OMElement o = env.getBody().getFirstElement(); System.out.println("returned OMElement text value="+o.getText(); sender.cleanup(); Martin Gainty ______________________________________________ Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni. Subject: How to send attachments via local transport? Date: Fri, 8 Jun 2012 00:21:23 -0700 From: yraja...@cisco.com To: java-...@axis.apache.org; java-user@axis.apache.org Hi All: While using Local Transport we are finding that attachments are being passed on to the receiving web service. However if we use regular HTTP invocation then the attachments are passed on to the receiving web service. Wondering if anyone has successfully send attachments via local transport – if so can you pls share a sample? Sincerely,YashwanthTechnical Architect, EBIS