cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: svn commit: r986571 - in /cxf/trunk: distribution/src/main/release/samples/jms-spec-demo/wsdl/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/ rt/bindings/soa
Date Tue, 14 Sep 2010 08:05:29 GMT
Hi Jim

On 9/14/10 1:27 PM, Jim Ma wrote:
> Hi all ,
> After this commit,  the SoapJMSInInterceptor is added to check the
> "SOAPJMS_conentType" and other key/value pairs in message header .  It
> requires the "SOAPJMS_contentType" and other properties added in the
> jms message. Are such header (jms message property) checks in
> SoapJMSInInterceptor  required in SOAP JMS specification ?  If the
> answer is yes , do we actually need to require user to add these
> properties to each jms request message as we do in
> SOAPJMSTestSuiteTest now ?

SoapJMSInInterceptor is used to check if the message headers meet the 
requirements of SOAP over JMS specification.


>
> I also want to keep the following java first jms test case work
> without properties setting in jms message ? Can the SoapJMSInteceptor
> automatically be disabled for this test case ?

If you don't want to use it, you just need to make sure you don't use 
the transportId for the SOAP over JMS.
You can change the use other JMS transportId such as 
"http://cxf.apache.org/transports/jms/configuration"


Willem
>
> ------SEI impl-----------
> @javax.jws.WebService(portName = "GreeterPort",
>                        serviceName = "JMSGreeterService",
>                        targetNamespace = "http://cxf.apache.org/jms_greeter",
> public class GreeterJMSImpl {
>      public String greetMe(String me) {
>          LOG.info("Executing operation greetMe");
>          System.out.println("Executing operation greetMe");
>          System.out.println("Message received: " + me + "\n");
>          return "Hello " + me;
>      }
>
>
> -----------------cxf.xml ------------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <beans
>    ....
>    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
>    http://cxf.apache.org/transports/jms
> http://cxf.apache.org/schemas/configuration/jms.xsd'>
>
>    <jaxws:endpoint
>      implementor='org.apache.cxf.jms_greeter.GreeterJMSImpl'
>      transportId="http://www.w3.org/2010/soapjms/">
>    </jaxws:endpoint>
>
>    <jms:destination
> name="{http://cxf.apache.org/jms_greeter}GreeterPort.jms-destination">
>      <jms:address
>        destinationStyle="queue"
>        jndiConnectionFactoryName="ConnectionFactory"
>        jndiDestinationName="queue/RequestQueue"
>        jndiReplyDestinationName="queue/ResponseQueue">
>      </jms:address>
>    </jms:destination>
>
>    <jms:conduit name="{http://cxf.apache.org/jms_greeter}GreeterPort..jms-conduit">
>      <jms:address
>        destinationStyle="queue"
>        jndiConnectionFactoryName="ConnectionFactory"
>        jndiDestinationName="queue/RequestQueue"
>        jndiReplyDestinationName="queue/ResponseQueue">
>      </jms:address>
>    </jms:conduit>
> </beans>
>
> ---Client code -------
> String reqMessage ="<env:Envelope
> xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>...</env:Envelope>";
> InitialContext context = new InitialContext();
> QueueConnectionFactory connectionFactory
> (QueueConnectionFactory)context.lookup("ConnectionFactory");
> Queue reqQueue = (Queue)context.lookup("queue/RequestQueue");
> Queue resQueue = (Queue)context.lookup("queue/ResponseQueue");
> QueueConnection con = connectionFactory.createQueueConnection();
> QueueSession session = con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
> QueueReceiver receiver = session.createReceiver(resQueue);
> ResponseListener responseListener = new ResponseListener();
> receiver.setMessageListener(responseListener);
> con.start();
>
> TextMessage message = session.createTextMessage(reqMessage);
> message.setJMSReplyTo(resQueue);
> waitForResponse = true;
> QueueSender sender = session.createSender(reqQueue);
> sender.send(message);
> sender.close();
> int timeout = 5;
> while (waitForResponse&&  timeout>  0)
>   {
>       Thread.sleep(1000);
>        timeout = timeout -1;
>   }
>
>
> Cheers,
> Jim
>
>
>
>
> On Wed, Aug 18, 2010 at 1:53 PM,<ningjiang@apache.org>  wrote:
>> Author: ningjiang
>> Date: Wed Aug 18 05:53:13 2010
>> New Revision: 986571
>>
>> URL: http://svn.apache.org/viewvc?rev=986571&view=rev
>> Log:
>> CXF-2949, CXF-2950, CXF-2951, applied Peter's patch of soapjms
>>
>> Modified:
>>     cxf/trunk/distribution/src/main/release/samples/jms-spec-demo/wsdl/jms_greeter.wsdl
>>     cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
>>     cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapTransportFactory.java
>>     cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapFaultFactory.java
>>     cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/bus-extensions.xml
>>     cxf/trunk/rt/bindings/soap/src/main/resources/META-INF/cxf/cxf-extension-soap.xml
>>     cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/jms/interceptor/SoapFaultFactoryTest.java
>>     cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/spec/JMSSpecConstants.java
>>     cxf/trunk/rt/transports/jms/src/main/resources/schemas/wsdl/spec/jms-spec-wsdl.xsd
>>     cxf/trunk/systests/transports/src/test/java/org/apache/cxf/jms/testsuite/testcases/SOAPJMSTestSuiteTest.java
>>     cxf/trunk/systests/transports/src/test/java/org/apache/cxf/jms/testsuite/util/JMSTestUtil.java
>>     cxf/trunk/systests/transports/src/test/java/org/apache/cxf/jms/testsuite/util/testcases.xml
>>     cxf/trunk/testutils/src/main/resources/wsdl/jms_spec_test.wsdl
>>     cxf/trunk/testutils/src/main/resources/wsdl/jms_spec_testsuite.wsdl
>>

Mime
View raw message