Hello, 

Your code helped. I did not have the below line of code. Adding it did the 
trick.

options.setAction("urn:tryEcho");

The Axis2 User's Guide does not mention anything about enabling the 
addressing module on the client side. Hence, i had no idea that this line 
had to be added.

Thank you for resolving my problem.

Regards,

Sagar M. Yerunkar





"Stadelmann Josef" <[EMAIL PROTECTED]> 
03/28/2007 10:41 AM
Please respond to
axis-user@ws.apache.org


To
<axis-user@ws.apache.org>
cc

Subject
AW: AW: [AXIS2] - Engaging addressing module on client






Hello Sagar,
 
    Here is my SOAPClient.java code main() only, which engages 3 modules,  
 
    Also I run my client and server in scope=soapsession. Therefore ....
 
    MyService5.java has a service.xml which defines
        <service name="MyService5" scope="soapsession">
 
    It works for me, and hope you can say the same now.
 
Josef
 
 
 
    public static void main(String[] args) throws AxisFault {
 
        try {
 
            Options options = new Options();
            options.setManageSession(true);
            options.setTo(new EndpointReference(toEpr));
            options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
            String home = System.getProperty("user.home");
            // create this folder at your home. This folder could be 
anything
            //then create the "modules" folder
            //copy the LoggingModule.mar to "modules" folder.
            //copy the axis2.xml to the client-repository 
 
            File repository = new File(home + File.separator + 
"client-repository");
            if (!repository.exists()) {
                throw new 
FileNotFoundException(repository.getAbsolutePath() + " does not Exist");
            };
 
            String str_axis2xml = repository.getAbsolutePath() + 
File.separator + "axis2.xml";
            File axis2_xml = new File(str_axis2xml);
            if (!axis2_xml.exists()) {
                throw new 
FileNotFoundException(axis2_xml.getAbsolutePath() + " does not Exist");
            };
 
            FileSystemConfigurator fsc = new FileSystemConfigurator(
            repository.getAbsolutePath(),
            axis2_xml.getAbsolutePath());
 
            AxisConfiguration er = fsc.getAxisConfig();
 
            ConfigurationContext configContext =
 ConfigurationContextFactory.createConfigurationContextFromFileSystem(
            repository.getAbsolutePath(),
            axis2_xml.getAbsolutePath()
            );
 
 
            //ServiceClient sender = new ServiceClient();
            ServiceClient sender = new ServiceClient(configContext,null);
 
            //sender.engageModule(new QName(Constants.MODULE_LOGGING));
            sender.engageModule(new QName("logging"));
 
+++>>> Sagar, do you have something like that in your code?
 
            //sender.engageModule(new QName(Constants.MODULE_ADDRESSING));
            sender.engageModule(new QName("addressing-1.1"));
 
            //sender.engageModule(new 
QName(Constants.MODULE_SOAPMONITOR));
            sender.engageModule(new QName("soapmonitor-1.1"));
 
 
+++>>> Sagar, do you have something like that in your code?
 
            // invoke the start method first using it's StartPaylod
            options.setAction("urn:start");
            sender.setOptions(options);
 
 
 
            OMElement start = sender.sendReceive(getStartPayload());
            // from now on use this sender so that WS-address stuff i.e. 
ServiceGroupeContextID info is sent
            // where in the dark of the code is that?
 
 
            String s = intObj.toString(i);
            System.out.print("No"+s);
 
            XMLStreamWriter startWriter = 
XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
            start.serialize(startWriter);
            startWriter.flush();                // write every-thing out
            System.out.println("");             // and add a CRLF
 
 
+++>>> Sagar, do you have something like that in your code?    start was 
the initial method called, now lets use echo 
            options.setAction("urn:echo");
            sender.setOptions(options);
 
            for(int i=0;i<500;i++){
 
                OMElement result = sender.sendReceive(getPayload());
 
                Thread.sleep(4000);
 
                s = intObj.toString(i);
                System.out.print("No"+s);
 
                XMLStreamWriter writer = 
XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
                result.serialize(writer);
                writer.flush();               // write every-thing out
                System.out.println("");       // and add a CRLF
 
                if (i==100){
                    System.gc();    // do an explicit Garbage Collection 
and get it all back
                }
                if (0 == i % 100){ 
                    System.gc();    // do an explicit Garbage Collection 
once evry 100 loops-through
                }
            } // end-for - so do a cleanup now to give up sender resource
            sender.cleanup();   // return resources .finalize would do 
more but is protected
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (XMLStreamException e) {
            e.printStackTrace();
        } catch (FactoryConfigurationError e) {
            e.printStackTrace();
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
    }
-----Ursprüngliche Nachricht-----
Von: Stadelmann Josef [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 28. März 2007 06:50
An: axis-user@ws.apache.org
Betreff: AW: AW: [AXIS2] - Engaging addressing module on client

Hello Sagar,
 
    Is the addressing module deployed and ENGAGED both on client and 
server?
 
Josef
-----Ursprüngliche Nachricht-----
Von: Sagar Yerunkar [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 28. März 2007 06:24
An: axis-user@ws.apache.org
Betreff: Re: AW: [AXIS2] - Engaging addressing module on client


Hello, 

I checked my services.xml. It already has the actionMapping tag. However, 
the <wsa:Action> header  is not being added to the soap message. 

<serviceGroup> 
<service name="OwnService"> 
    <description> 
        Own WS, two methods: tryPing and tryEcho 
    </description> 
    <parameter name="ServiceClass" 
locked="false">userguide.OwnService</parameter> 
    <operation name="tryEcho"> 
        <messageReceiver 
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>\ 
        <actionMapping>urn:tryEcho</actionMapping> 
    </operation> 
     <operation name="tryPing"> 
        <messageReceiver 
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> 
        <actionMapping>urn:tryPing</actionMapping> 
    </operation> 
 </service> 
 </serviceGroup> 

Regards,

Sagar M. Yerunkar



"Stadelmann Josef" <[EMAIL PROTECTED]> 
03/27/2007 08:28 PM 

Please respond to
axis-user@ws.apache.org



To
<axis-user@ws.apache.org> 
cc

Subject
AW: [AXIS2] - Engaging addressing module on client








Hi Sagar 
  
in your reply message you find 
 <wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action> 
Axis2 intends to say in conjuntion with 
         <wsa:FaultDetail> 
           <wsa:ProblemHeaderQName>wsa:Action</wsa:ProblemHeaderQName> 
        </wsa:FaultDetail> 
and 
         <soapenv:Fault> 
           <faultcode>wsa:MessageAddressingHeaderRequired</faultcode> 
           <faultstring>A required header representing a Message 
Addressing Property is not present</faultstring> 
           <detail /> 
        </soapenv:Fault> 
that you did not send a <wsa:Action     header 
  
Try adding an wsa:Action Header as shown below in the request message. 
This header is missing, and that is what 
axis2 intends to say you. 
  
Check for ActionMapping in your service.xml, add it if not there, then you 
migth have something like 
...... 
- <operation name="echo"> 
  <messageReceiver class="
org.apache.axis2.receivers.RawXMLINOutMessageReceiver" /> 
  <actionMapping>urn:echo</actionMapping> 
  </operation> 
..... 
So yopur actionMaping wanted has to go into a SoapHeader 
<wsa:Action>urn:echo</wsa:Action> 
  
Regards 
Josef   
 
 
  
 -----Ursprüngliche Nachricht-----
Von: Sagar Yerunkar [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 27. März 2007 14:56
An: axis-user@ws.apache.org
Betreff: Re: [AXIS2] - Engaging addressing module on client


Hello, 

I have further noticed that if i only include the addressing .mar file in 
the classpath (without changing any code), i get the exception 

org.apache.axis2.AxisFault: A required header representing a Message 
Addressing 
Property is not present 
       at 
org.apache.axis2.util.CallbackReceiver.receive(CallbackReceiver.java:65) 
       at 
org.apache.axis2.engine.AxisEngine.receiveFault(AxisEngine.java:610) 
       at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:326)
 

       at 
org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:230) 
       at ... 

My soap reqest is being sent but i get an Error in the reply 

Here is my soap request caught using TCP Monitor: 
POST /axis2/services/OwnService HTTP/1.1 
SOAPAction: "urn:anonOutInOp" 
User-Agent: Axis2 
Host: 127.0.0.1:9000 
Transfer-Encoding: chunked 
Content-Type: text/xml; charset=UTF-8 

27e 
<?xml version='1.0' encoding='UTF-8'?> 
  <soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"; 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";> 
     <soapenv:Header> 
        <wsa:To>http://localhost:9000/axis2/services/OwnService</wsa:To> 
        <wsa:ReplyTo> 
 <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> 

        </wsa:ReplyTo> 
 <wsa:MessageID>urn:uuid:9B8FDACFBCA1263A121174999707376</wsa:MessageID> 
         < wsa:Action>urn:echo</wsa:Action>     !!! depends on what you 
have in service.xml as ActionMapping for the method wanted, I asume 
urn:echo   
      </soapenv:Header> 
     <soapenv:Body> 
        <example1:tryEcho xmlns:example1="http://example1.org/example1"; 
sleepTime="4000" code="0"> 
           <example1:Text>Payload echo string</example1:Text> 
        </example1:tryEcho> 
     </soapenv:Body> 
  </soapenv:Envelope>0 


Here is my soap response : 
HTTP/1.1 500 Internal Server Error 
Server: Apache-Coyote/1.1 
Content-Type: text/xml;charset=UTF-8 
Transfer-Encoding: chunked 
Date: Tue, 27 Mar 2007 12:48:28 GMT 
Connection: close 

3cc 
<?xml version='1.0' encoding='UTF-8'?> 
  <soapenv:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing"; 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";> 
     <soapenv:Header> 
        <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To> 
        <wsa:ReplyTo> 
 <wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address> 
        </wsa:ReplyTo> 
 <wsa:MessageID>urn:uuid:AF393873831A7C3EF31174999708410</wsa:MessageID> 
 <wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action> 
        <wsa:RelatesTo wsa:RelationshipType="
http://www.w3.org/2005/08/addressing/reply
">urn:uuid:9B8FDACFBCA1263A121174999707376</wsa:RelatesTo> 
        <wsa:FaultDetail> 
           <wsa:ProblemHeaderQName>wsa:Action</wsa:ProblemHeaderQName> 
        </wsa:FaultDetail> 
     </soapenv:Header> 
     <soapenv:Body> 
        <soapenv:Fault> 
           <faultcode>wsa:MessageAddressingHeaderRequired</faultcode> 
           <faultstring>A required header representing a Message 
Addressing Property is not present</faultstring> 
           <detail /> 
        </soapenv:Fault> 
     </soapenv:Body> 
  </soapenv:Envelope>0 

I have engaged the addressing module on the server side. 

Kindly help. 


Regards,

Sagar M. Yerunkar



"Thilina Gunarathne" <[EMAIL PROTECTED]> 
03/25/2007 10:13 AM 

Please respond to
axis-user@ws.apache.org



To
axis-user@ws.apache.org 
cc

Subject
Re: [AXIS2] - Engaging addressing module on client










> How do i specify a .mar file in the classpath? Eclipse allows me to add 
no
> files other than jars and zips to the classpath.
Yes.. If you are using Eclipse your choices are limited to the second 
option...
ConfigurationContext configContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem("repository","path
to axis2.xml or null");
ServiceClient sender = new ServiceClient(configContext, null);

~Thilina

>
> Please can someone guide me?
>
> Regards,
>
>  Sagar M. Yerunkar
>
> ______________________________________________________________________
>


-- 
Thilina Gunarathne  -  http://www.wso2.com - http://thilinag.blogspot.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


______________________________________________________________________


______________________________________________________________________ 

______________________________________________________________________ 

______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Reply via email to