axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Fabio.Fe...@swisscom.com>
Subject RE: [Axis2] soap over jms
Date Thu, 08 Feb 2007 14:06:37 GMT
Hi Ali,
thanks a lot for your help.

Just one question, is the solution that you are suggesting going to be
possible after the wsdl2java tool use?

If you look at my client which one will be the right place to put this
information? I mean where should i put the code that you suggest me?
Am i still able to use the stub?

Thanks a lot i advance.

Best Regards,
Fabio

-----Original Message-----
From: Ali Sadik Kumlali [mailto:as_kumlali@yahoo.com] 
Sent: Thursday, February 08, 2007 1:35 PM
To: axis-user@ws.apache.org
Subject: Re: [Axis2] soap over jms

Hi Fabio,



AFAIK, API doesn't support custom JMS properties and you don't have an
easy solution for now.



I would suggest you follow the steps below:

- Create your custom sender (e.g. CustomJmsSender) by copying JMSSender
coming with Axis2.
Note that you should use "org.apache.axis2.transport.jms" as package
name. Since createJMSMessage() is private, we cannot just extend
JMSSender and override the method.
- Add following lines just before "return message;" statement of
createJMSMessage ().


   message.setStringProperty("Content_Type", "application/xml;
charset=\"utf-8\"  ");

   message.setStringProperty("Mime_Version", "1.0");

-   In axis2.xml, replace transport sender definition
"org.apache.axis2.transport.jms.JMSSender" with
"org.apache.axis2.transport.jms.CustomJmsSender"

Don't forget that it is in your responsibility to keep this class
compatible with the new Axis2 releases ;)

Regards,

Ali Sadik Kumlali


----- Original Message ----

From: "Fabio.Ferri@swisscom.com" <Fabio.Ferri@swisscom.com>

To: axis-user@ws.apache.org

Sent: Thursday, February 8, 2007 11:14:08 AM

Subject: soap over jms



soap over jms           Hi all,  

I am new to Axis2 and to axis in general. 

  I need to create an Axis2 client starting from the WSDL provided by
the server.  

I have gone through changing the axis2.xml file with the filowing
information: 

  <transportReceiver name="jms"
class="org.apache.axis2.transport.jms.JMSListener">  

    <parameter name="TibcoQueueConnectionFactory" locked="false">  

            <parameter name="java.naming.factory.initial"
locked="false">com.tibco.tibjms.naming.TibjmsInitialContextFactory</para
meter>

              <parameter name="java.naming.provider.url"
locked="false">tibjmsnaming://localhost:7222</parameter>  

            <parameter name="transport.jms.ConnectionFactoryJNDIName"
locked="false">QueueConnectionFactory</parameter>  

    </parameter>  

</transportReceiver> 

  <transportSender name="jms"
class="org.apache.axis2.transport.jms.JMSSender"/> 

  and after that I have used the wsdl2java tool to generate the java
stub. I have then created a simple client that was using this stub:

   

public class testAxis2JMS {  

        /**  

         * @param args  

         */  

        public static void main(String[] args) {  

                // TODO Auto-generated method stub  

        try{  

                String endpointURL = "jms:/TCM.INTEGRAT.REQ.ADDRESS?"  

                +
"transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory"  

                + "&java.naming.factory.initial="   

                  +
"com.tibco.tibjms.naming.TibjmsInitialContextFactory"  

                +
"&java.naming.provider.url=tibjmsnaming://localhost:7222"  

                + "&java.naming.security.principal=user"  

                + "&java.naming.security.credentials=password";


                  

                IntfTestWSfromXSDProcessServiceStub stub =   

                        new
IntfTestWSfromXSDProcessServiceStub(endpointURL);  

                Indirizzo ind = new Indirizzo();  

                ind.setCitta("Rome");  

                ind.setNumero(2);  

                ind.setVia("blabla");  

                  

                Output out = stub.TestWSfromXSDProcessOp(ind);  

                System.out.println("Code : " + out.getCode());  

                System.out.println("Me : " + out.getMsg());  

        } catch(Exception e){  

            e.printStackTrace();  

            System.out.println("\n\n\n");  

        } 

          }  

} 

  Now when I send the request to the jms server the message is
successfully sent. The problem is that the web service that I am calling
needs to have some more information on the JMS header sent from my
client to the jms server.

 

 The jms message sent look like this:

 $Header:  

JMSMessageID=ID:EMS-SERVER.8A445C9FBB14:3  

JMSTimestamp=Wed Feb 07 17:18:09 CET 2007  

JMSDestination=Queue[TCM.INTEGRAT.REQ.ADDRESS]  

JMSDeliveryMode=PERSISTENT  

JMSCorrelationID=null  

JMSType=null  

JMSReplyTo=Queue[$TMP$.EMS-SERVER.8A445C9FBB14.3]  

JMSPriority=4  

$Properties:  

SOAPAction="test/Axis2"  

$Body:  

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Heade
r /><soapenv:Body><ns1:Indirizzo
xmlns:ns1="http://www.tibco.com/schemas/eChannel/Schema.xsd"><ns1:citta>
Rome</ns1:citta><ns1:via>blabla</ns1:via><ns1:numero>2</ns1:numero></ns1
:Indirizzo></soapenv:Body></soapenv:Envelope>

  The problem is that it should look like this: 

  $Header:  

JMSMessageID=ID:EMS-SERVER.8A445C9FBB184:8  

JMSTimestamp=Thu Feb 08 10:09:16 CET 2007  

JMSDestination=Queue[TCM.INTEGRAT.REQ.ADDRESS]  

JMSDeliveryMode=PERSISTENT  

JMSCorrelationID=null  

JMSType=null  

JMSReplyTo=Queue[$TMP$.EMS-SERVER.8A445C9FBB185.7]  

JMSPriority=4  

$Properties:  

Content_Type=application/xml; charset="utf-8"  

Mime_Version=1.0  

SoapAction="test/Axis2"  

$Body:  

<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Heade
r /><soapenv:Body><ns1:Indirizzo
xmlns:ns1="http://www.tibco.com/schemas/eChannel/Schema.xsd"><ns1:citta>
Rome</ns1:citta><ns1:via>blabla</ns1:via><ns1:numero>2</ns1:numero></ns1
:Indirizzo></soapenv:Body></soapenv:Envelope>

  There are this two properties in the jms message header (Content_Type
and Mime_Version) that I need to add in order to make the Web Servixce
server work.

  Is it possible to do anything like this form the client side?   

I have tried to check withtin the Axis2 Api but i did not successfully
find a way to add this information.  

  Is there anyone that can help me? 

  Thanks a lot in advance. 

  Cheers,

 Fabio 

  









 
________________________________________________________________________
____________
Be a PS3 game guru.
Get your game face on with the latest PS3 news and previews at Yahoo!
Games.
http://videogames.yahoo.com/platform?platform=120121

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message