Ok I guess you should try adding:
options.setTransportOutProtocol(Constants.TRANSPORT_HTTP);
It looks like our tutorial code is too complex!
Paul
On Tue, May 12, 2009 at 9:13 AM, Paul Fremantle <[email protected]> wrote:
> Is that your first client!? Its a little more complex than the average
> - have you looked at the samples?
>
> I think the problem is that you've set the InProtocol but not the out
> protocol. What happens if you simple comment out the line:
>> options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
>
> Paul
>
> On Tue, May 12, 2009 at 8:53 AM, Claire Loto <[email protected]> wrote:
>> Hi Paul,
>> I have attached the files I am using.
>> thanks a lot
>>
>> Regards,
>> Claire
>>
>> Paul Fremantle wrote:
>>
>> It looks like your sample code is wrong. Can you post it so we can see?
>>
>> Thanks!
>> Paul
>>
>> On Tue, May 12, 2009 at 8:05 AM, Claire Loto <[email protected]> wrote:
>>
>>
>> Hi,
>> I am trying to run a test client in Axis2 but i got this error:
>> log4j:WARN No appenders could be found for logger
>> (org.apache.axis2.util.Loader).
>> log4j:WARN Please initialize the log4j system properly.
>> org.apache.axis2.AxisFault: Transport out has not been set
>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:439)
>> at
>> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:330)
>> at
>> org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294)
>> at
>> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:520)
>> at
>> org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:500)
>> at org.example.www.helloaxis2.helloClient.main(helloClient.java:37)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>>
>> can anyone please help me?
>>
>> thanks,
>>
>> Claire
>>
>>
>>
>>
>>
>> package org.example.www.helloaxis2;
>>
>> /**
>> * Created by IntelliJ IDEA.
>> * User: Sajal Dutta
>> * Date: May 7, 2009
>> * Time: 5:04:00 PM
>> * To change this template use File | Settings | File Templates.
>> */
>> import java.io.StringWriter;
>> import javax.xml.stream.*;
>> import org.apache.axiom.om.*;
>> import org.apache.axis2.*;
>> import org.apache.axis2.addressing.EndpointReference;
>> import org.apache.axis2.client.ServiceClient;
>> import org.apache.axis2.client.Options;
>>
>> public class helloClient {
>> //specify the endpoint reference
>> private static EndpointReference targetEPR = new EndpointReference(
>> "http://localhost:8080/axis2/services/helloAxis2");
>> public static void main(String[] args) {
>> try {
>> OMFactory fac = OMAbstractFactory.getOMFactory();
>> OMNamespace omNs = fac.createOMNamespace(
>> "http://www.example.org/helloAxis2/", "helloAxis2");
>> //compose the request element
>> OMElement request = fac.createOMElement("Request", omNs);
>> request.addChild(fac.createOMText("MADMUC"));
>> Options options = new Options();
>> //specify sender options: target, transport protocol, and soap
>> action
>> options.setTo(targetEPR);
>> options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
>>
>> options.setAction("http://localhost:8080/axis2/services/helloAxis2");
>> ServiceClient sender = new ServiceClient();
>> sender.setOptions(options);
>> OMElement result = sender.sendReceive(request);
>> //print out the response
>> StringWriter writer = new StringWriter();
>> result.serialize(XMLOutputFactory.newInstance()
>> .createXMLStreamWriter(writer));
>> writer.flush();
>> System.out.println(writer.toString());
>> } catch (AxisFault axisFault) {
>> axisFault.printStackTrace();
>> } catch (XMLStreamException e) {
>> e.printStackTrace();
>> }
>> }
>> }
>>
>> /**
>> * HelloAxis2MessageReceiverInOut.java
>> *
>> * This file was auto-generated from WSDL
>> * by the Apache Axis2 version: 1.2 Apr 27, 2007 (04:14:19 IST)
>> */
>> package org.example.www.helloaxis2;
>>
>> /**
>> * HelloAxis2MessageReceiverInOut message receiver
>> */
>>
>> public class HelloAxis2MessageReceiverInOut extends
>> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver{
>>
>>
>> public void
>> invokeBusinessLogic(org.apache.axis2.context.MessageContext msgContext,
>> org.apache.axis2.context.MessageContext newMsgContext)
>> throws org.apache.axis2.AxisFault{
>>
>> try {
>>
>> // get the implementation class for the Web Service
>> Object obj = getTheImplementationObject(msgContext);
>>
>> HelloAxis2Skeleton skel = (HelloAxis2Skeleton)obj;
>> //Out Envelop
>> org.apache.axiom.soap.SOAPEnvelope envelope = null;
>> //Find the axisOperation that has been set by the Dispatch phase.
>> org.apache.axis2.description.AxisOperation op =
>> msgContext.getOperationContext().getAxisOperation();
>> if (op == null) {
>> throw new org.apache.axis2.AxisFault("Operation is not located, if
>> this is doclit style the SOAP-ACTION should specified via the SOAP Action to
>> use the RawXMLProvider");
>> }
>>
>> java.lang.String methodName;
>> if(op.getName() != null & (methodName =
>> org.apache.axis2.util.JavaUtils.xmlNameToJava(op.getName().getLocalPart()))
>> != null){
>>
>>
>>
>> if("sayHello".equals(methodName)){
>>
>> org.apache.axiom.om.OMElement response1 = null;
>> org.apache.axiom.om.OMElement wrappedParam =
>>
>> (org.apache.axiom.om.OMElement)fromOM(
>>
>> msgContext.getEnvelope().getBody().getFirstElement(),
>> org.apache.axiom.om.OMElement.class,
>>
>> getEnvelopeNamespaces(msgContext.getEnvelope()));
>>
>> response1 =
>>
>>
>>
>> skel.sayHello(wrappedParam)
>> ;
>>
>> envelope =
>> toEnvelope(getSOAPFactory(msgContext), response1, false);
>>
>> } else {
>> throw new RuntimeException("method not found");
>> }
>>
>>
>> newMsgContext.setEnvelope(envelope);
>> }
>> }
>> catch (Exception e) {
>> throw org.apache.axis2.AxisFault.makeFault(e);
>> }
>> }
>>
>> //
>> private org.apache.axiom.om.OMElement fromOM(
>> org.apache.axiom.om.OMElement param,
>> java.lang.Class type,
>> java.util.Map extraNamespaces){
>> return param;
>> }
>>
>> private org.apache.axiom.om.OMElement
>> toOM(org.apache.axiom.om.OMElement param, boolean optimizeContent){
>> return param;
>> }
>>
>> private org.apache.axiom.soap.SOAPEnvelope
>> toEnvelope(org.apache.axiom.soap.SOAPFactory factory,
>> org.apache.axiom.om.OMElement param, boolean optimizeContent){
>> org.apache.axiom.soap.SOAPEnvelope envelope =
>> factory.getDefaultEnvelope();
>> envelope.getBody().addChild(param);
>> return envelope;
>> }
>>
>> /**
>> * get the default envelope
>> */
>> private org.apache.axiom.soap.SOAPEnvelope
>> toEnvelope(org.apache.axiom.soap.SOAPFactory factory){
>> return factory.getDefaultEnvelope();
>> }
>>
>>
>>
>> /**
>> * A utility method that copies the namepaces from the SOAPEnvelope
>> */
>> private java.util.Map
>> getEnvelopeNamespaces(org.apache.axiom.soap.SOAPEnvelope env){
>> java.util.Map returnMap = new java.util.HashMap();
>> java.util.Iterator namespaceIterator =
>> env.getAllDeclaredNamespaces();
>> while (namespaceIterator.hasNext()) {
>> org.apache.axiom.om.OMNamespace ns =
>> (org.apache.axiom.om.OMNamespace) namespaceIterator.next();
>> returnMap.put(ns.getPrefix(),ns.getNamespaceURI());
>> }
>> return returnMap;
>> }
>>
>> private org.apache.axis2.AxisFault
>> createAxisFault(java.lang.Exception e) {
>> org.apache.axis2.AxisFault f;
>> Throwable cause = e.getCause();
>> if (cause != null) {
>> f = new org.apache.axis2.AxisFault(e.getMessage(), cause);
>> } else {
>> f = new org.apache.axis2.AxisFault(e.getMessage());
>> }
>>
>> return f;
>> }
>>
>> }//end of class
>>
>>
>> /**
>> * HelloAxis2Skeleton.java
>> *
>> * This file was auto-generated from WSDL
>> * by the Apache Axis2 version: 1.2 Apr 27, 2007 (04:14:19 IST)
>> */
>> package org.example.www.helloaxis2;
>>
>> import org.apache.axiom.om.OMElement;
>> import org.apache.axiom.om.OMNamespace;
>> import org.apache.axiom.om.OMAbstractFactory;
>> import org.apache.axiom.om.OMFactory;
>>
>> /**
>> * HelloAxis2Skeleton java skeleton for the axisService
>> */
>> public class HelloAxis2Skeleton {
>> public org.apache.axiom.om.OMElement sayHello(
>> org.apache.axiom.om.OMElement param0)
>> {
>> OMFactory fac = OMAbstractFactory.getOMFactory();
>> //create a namespace
>> OMNamespace omNs = fac.createOMNamespace(
>> "http://www.example.org/helloAxis2/", "helloAxis2");
>> //create an element using the namespace
>> OMElement response = fac.createOMElement("Reponse", omNs);
>> //get the text content of request message, compose the content of
>> //response message, and add it to the element
>> response.addChild(fac.createOMText("Hello, " + param0.getText()));
>> return response;
>> }
>> }
>>
>
>
>
> --
> Paul Fremantle
> Co-Founder and CTO, WSO2
> Apache Synapse PMC Chair
> OASIS WS-RX TC Co-chair
>
> blog: http://pzf.fremantle.org
> [email protected]
>
> "Oxygenating the Web Service Platform", www.wso2.com
>
--
Paul Fremantle
Co-Founder and CTO, WSO2
Apache Synapse PMC Chair
OASIS WS-RX TC Co-chair
blog: http://pzf.fremantle.org
[email protected]
"Oxygenating the Web Service Platform", www.wso2.com