You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Daniel Kulp <dk...@apache.org> on 2008/10/10 16:41:51 UTC

JMS 1.0.2 support......

Christian,

The old JMS transport pretty much just used the JMS 1.0.2 API's so it worked 
with old versions of JMS providers and such.   The new stuff seems to default 
to 1.1 which is causing issues.    I see that if you use the new config, it's 
settable.   However, if you use the old wsdl based stuff, it cannot.    I'm 
wondering if it make sense for the line in JMSOldConfigHolder that reads:
 jmsConfig.setUseJms11(true);
should be changed to false to be compatible with the old version?

I suppose we could add a optional "useJms11" attribute (default to false) on 
one of the old extensors (address maybe?) to set this so if someone wants to 
use 1.1, they could, but default behavior is maintained.

Thoughts?

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

Re: JMS 1.0.2 support......

Posted by Daniel Kulp <dk...@apache.org>.
On Saturday 11 October 2008 3:34:52 am Christian Schneider wrote:
> Hi Dan,
>
> sounds reasonable to me. I have added the config element to address and
> set the default.

I think setting useJms11 to false for 2.0.x and 2.1.x probably makes sense for 
compatibility sake.   For 2.2 (trunk), it probably make sense to set the 
default to true.   If the provider is 1.1 capable, we probably should use it, 
but provide the option for the user to downgrade to 1.0.2 if they need it.

Dan



>
> Greetings
>
> Christian
>
> Daniel Kulp schrieb:
> > Christian,
> >
> > The old JMS transport pretty much just used the JMS 1.0.2 API's so it
> > worked with old versions of JMS providers and such.   The new stuff seems
> > to default to 1.1 which is causing issues.    I see that if you use the
> > new config, it's settable.   However, if you use the old wsdl based
> > stuff, it cannot.    I'm wondering if it make sense for the line in
> > JMSOldConfigHolder that reads: jmsConfig.setUseJms11(true);
> > should be changed to false to be compatible with the old version?
> >
> > I suppose we could add a optional "useJms11" attribute (default to false)
> > on one of the old extensors (address maybe?) to set this so if someone
> > wants to use 1.1, they could, but default behavior is maintained.
> >
> > Thoughts?



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

Re: JMS 1.0.2 support......

Posted by Christian Schneider <ch...@die-schneider.net>.
Hi Dan,

sounds reasonable to me. I have added the config element to address and 
set the default.

Greetings

Christian

 

Daniel Kulp schrieb:
> Christian,
>
> The old JMS transport pretty much just used the JMS 1.0.2 API's so it worked 
> with old versions of JMS providers and such.   The new stuff seems to default 
> to 1.1 which is causing issues.    I see that if you use the new config, it's 
> settable.   However, if you use the old wsdl based stuff, it cannot.    I'm 
> wondering if it make sense for the line in JMSOldConfigHolder that reads:
>  jmsConfig.setUseJms11(true);
> should be changed to false to be compatible with the old version?
>
> I suppose we could add a optional "useJms11" attribute (default to false) on 
> one of the old extensors (address maybe?) to set this so if someone wants to 
> use 1.1, they could, but default behavior is maintained.
>
> Thoughts?
>
>   


-- 

Christian Schneider
---
http://www.liquid-reality.de


RE: JMS 1.0.2 support......

Posted by Seumas Soltysik <SS...@progress.com>.
Hi Christian,
Our configuration is wsdl based. Here is the service description:
   
    <service name="HelloWorldServiceSonic">
           <port binding="tns:HelloWorldPortBinding"
name="HelloWorldPortSonic">
             <jms:address 
                 jndiConnectionFactoryName="SonicQueueConnectionFactory"

                 jndiDestinationName="SampleQ4">
 	    	<jms:JMSNamingProperty
name="java.naming.factory.initial"
value="com.sonicsw.jndi.mfcontext.MFContextFactory" />
 	    	<jms:JMSNamingProperty name="java.naming.provider.url"
value="tcp://pdsunfire.boston.amer.iona.com:2506" />
             </jms:address>
             <jms:server durableSubscriberName="CXF_subscriber"/>
           </port>
    </service>

Regards,
Seumas

-----Original Message-----
From: Christian Schneider [mailto:chris@die-schneider.net] 
Sent: Tuesday, November 11, 2008 2:11 AM
To: Seumas Soltysik
Cc: dev@cxf.apache.org; Daniel Kulp
Subject: Re: JMS 1.0.2 support......

Hi Seumas,

could you post the configuration you used?

Greetings

Christian

Seumas Soltysik schrieb:
> I have just upgraded to CXF 2.1.3 and am running against an old
> implementation of SonicMQ version 5, which I believe based upon the
old
> 1.0.2 apis. However, I am still getting a stack which indicates that
CXF
> does still not seem compatible with older versions of JMS. Clearly the
> stack show that a JmsTemplate102 is being used, yet the problem I was
> having with 2.1.2 persists.
>
> java.lang.AbstractMethodError:
>
progress.message.jclient.QueueConnectionFactory.createConnection()Ljavax
> /jms/Connection;
> at
>
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapt
>
er.doCreateConnection(UserCredentialsConnectionFactoryAdapter.java:177)
> at
>
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapt
> er.createConnection(UserCredentialsConnectionFactoryAdapter.java:149)
> at
>
org.springframework.jms.connection.SingleConnectionFactory.doCreateConne
> ction(SingleConnectionFactory.java:316)
> at
>
org.springframework.jms.connection.SingleConnectionFactory.initConnectio
> n(SingleConnectionFactory.java:270)
> at
>
org.springframework.jms.connection.SingleConnectionFactory.createConnect
> ion(SingleConnectionFactory.java:215)
> at
>
org.springframework.jms.connection.SingleConnectionFactory.createQueueCo
> nnection(SingleConnectionFactory.java:227)
> at
>
org.springframework.jms.core.JmsTemplate102.createConnection(JmsTemplate
> 102.java:170)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:461)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:436)
> at
>
org.apache.cxf.transport.jms.JMSFactory.resolveOrCreateDestination(JMSFa
> ctory.java:120)
> at
>
org.apache.cxf.transport.jms.JMSFactory.createJmsListener(JMSFactory.jav
> a:101)
> at
>
org.apache.cxf.transport.jms.JMSDestination.activate(JMSDestination.java
> :99)
> at
>
org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractO
> bservable.java:48)
> at
>
org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindin
> gFactory.java:166)
> at
>
org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFa
> ctory.java:721)
> at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)
> at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:263)
> at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
> at
>
org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderI
> mpl.java:84)
> at javax.xml.ws.Endpoint.publish(Endpoint.java:47)
> -----Original Message-----
> From: Daniel Kulp [mailto:dkulp@apache.org] 
> Sent: Friday, October 10, 2008 10:42 AM
> To: Christian Schneider; dev@cxf.apache.org
> Subject: JMS 1.0.2 support......
>
>
> Christian,
>
> The old JMS transport pretty much just used the JMS 1.0.2 API's so it
> worked 
> with old versions of JMS providers and such.   The new stuff seems to
> default 
> to 1.1 which is causing issues.    I see that if you use the new
config,
> it's 
> settable.   However, if you use the old wsdl based stuff, it cannot.
> I'm 
> wondering if it make sense for the line in JMSOldConfigHolder that
> reads:
>  jmsConfig.setUseJms11(true);
> should be changed to false to be compatible with the old version?
>
> I suppose we could add a optional "useJms11" attribute (default to
> false) on 
> one of the old extensors (address maybe?) to set this so if someone
> wants to 
> use 1.1, they could, but default behavior is maintained.
>
> Thoughts?
>
>   


-- 

Christian Schneider
---
http://www.liquid-reality.de


Re: JMS 1.0.2 support......

Posted by Christian Schneider <ch...@die-schneider.net>.
Hi Seumas,

could you post the configuration you used?

Greetings

Christian

Seumas Soltysik schrieb:
> I have just upgraded to CXF 2.1.3 and am running against an old
> implementation of SonicMQ version 5, which I believe based upon the old
> 1.0.2 apis. However, I am still getting a stack which indicates that CXF
> does still not seem compatible with older versions of JMS. Clearly the
> stack show that a JmsTemplate102 is being used, yet the problem I was
> having with 2.1.2 persists.
>
> java.lang.AbstractMethodError:
> progress.message.jclient.QueueConnectionFactory.createConnection()Ljavax
> /jms/Connection;
> at
> org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapt
> er.doCreateConnection(UserCredentialsConnectionFactoryAdapter.java:177)
> at
> org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapt
> er.createConnection(UserCredentialsConnectionFactoryAdapter.java:149)
> at
> org.springframework.jms.connection.SingleConnectionFactory.doCreateConne
> ction(SingleConnectionFactory.java:316)
> at
> org.springframework.jms.connection.SingleConnectionFactory.initConnectio
> n(SingleConnectionFactory.java:270)
> at
> org.springframework.jms.connection.SingleConnectionFactory.createConnect
> ion(SingleConnectionFactory.java:215)
> at
> org.springframework.jms.connection.SingleConnectionFactory.createQueueCo
> nnection(SingleConnectionFactory.java:227)
> at
> org.springframework.jms.core.JmsTemplate102.createConnection(JmsTemplate
> 102.java:170)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:461)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:436)
> at
> org.apache.cxf.transport.jms.JMSFactory.resolveOrCreateDestination(JMSFa
> ctory.java:120)
> at
> org.apache.cxf.transport.jms.JMSFactory.createJmsListener(JMSFactory.jav
> a:101)
> at
> org.apache.cxf.transport.jms.JMSDestination.activate(JMSDestination.java
> :99)
> at
> org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractO
> bservable.java:48)
> at
> org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindin
> gFactory.java:166)
> at
> org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFa
> ctory.java:721)
> at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)
> at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:263)
> at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
> at
> org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderI
> mpl.java:84)
> at javax.xml.ws.Endpoint.publish(Endpoint.java:47)
> -----Original Message-----
> From: Daniel Kulp [mailto:dkulp@apache.org] 
> Sent: Friday, October 10, 2008 10:42 AM
> To: Christian Schneider; dev@cxf.apache.org
> Subject: JMS 1.0.2 support......
>
>
> Christian,
>
> The old JMS transport pretty much just used the JMS 1.0.2 API's so it
> worked 
> with old versions of JMS providers and such.   The new stuff seems to
> default 
> to 1.1 which is causing issues.    I see that if you use the new config,
> it's 
> settable.   However, if you use the old wsdl based stuff, it cannot.
> I'm 
> wondering if it make sense for the line in JMSOldConfigHolder that
> reads:
>  jmsConfig.setUseJms11(true);
> should be changed to false to be compatible with the old version?
>
> I suppose we could add a optional "useJms11" attribute (default to
> false) on 
> one of the old extensors (address maybe?) to set this so if someone
> wants to 
> use 1.1, they could, but default behavior is maintained.
>
> Thoughts?
>
>   


-- 

Christian Schneider
---
http://www.liquid-reality.de


RE: JMS 1.0.2 support......

Posted by Seumas Soltysik <SS...@progress.com>.
I have just upgraded to CXF 2.1.3 and am running against an old
implementation of SonicMQ version 5, which I believe based upon the old
1.0.2 apis. However, I am still getting a stack which indicates that CXF
does still not seem compatible with older versions of JMS. Clearly the
stack show that a JmsTemplate102 is being used, yet the problem I was
having with 2.1.2 persists.

java.lang.AbstractMethodError:
progress.message.jclient.QueueConnectionFactory.createConnection()Ljavax
/jms/Connection;
at
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapt
er.doCreateConnection(UserCredentialsConnectionFactoryAdapter.java:177)
at
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapt
er.createConnection(UserCredentialsConnectionFactoryAdapter.java:149)
at
org.springframework.jms.connection.SingleConnectionFactory.doCreateConne
ction(SingleConnectionFactory.java:316)
at
org.springframework.jms.connection.SingleConnectionFactory.initConnectio
n(SingleConnectionFactory.java:270)
at
org.springframework.jms.connection.SingleConnectionFactory.createConnect
ion(SingleConnectionFactory.java:215)
at
org.springframework.jms.connection.SingleConnectionFactory.createQueueCo
nnection(SingleConnectionFactory.java:227)
at
org.springframework.jms.core.JmsTemplate102.createConnection(JmsTemplate
102.java:170)
at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:461)
at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:436)
at
org.apache.cxf.transport.jms.JMSFactory.resolveOrCreateDestination(JMSFa
ctory.java:120)
at
org.apache.cxf.transport.jms.JMSFactory.createJmsListener(JMSFactory.jav
a:101)
at
org.apache.cxf.transport.jms.JMSDestination.activate(JMSDestination.java
:99)
at
org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractO
bservable.java:48)
at
org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindin
gFactory.java:166)
at
org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFa
ctory.java:721)
at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:263)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
at
org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderI
mpl.java:84)
at javax.xml.ws.Endpoint.publish(Endpoint.java:47)
-----Original Message-----
From: Daniel Kulp [mailto:dkulp@apache.org] 
Sent: Friday, October 10, 2008 10:42 AM
To: Christian Schneider; dev@cxf.apache.org
Subject: JMS 1.0.2 support......


Christian,

The old JMS transport pretty much just used the JMS 1.0.2 API's so it
worked 
with old versions of JMS providers and such.   The new stuff seems to
default 
to 1.1 which is causing issues.    I see that if you use the new config,
it's 
settable.   However, if you use the old wsdl based stuff, it cannot.
I'm 
wondering if it make sense for the line in JMSOldConfigHolder that
reads:
 jmsConfig.setUseJms11(true);
should be changed to false to be compatible with the old version?

I suppose we could add a optional "useJms11" attribute (default to
false) on 
one of the old extensors (address maybe?) to set this so if someone
wants to 
use 1.1, they could, but default behavior is maintained.

Thoughts?

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog