You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jared S Warren <js...@jcpenney.com> on 2012/02/22 23:46:54 UTC

How can I prevent auto-starting of a JMS endpoint?

I'd like to be able to prevent a JMS endpoint (<jaxws:endpoint> with
JMSConfigFeature) from auto-starting when the server comes up.

 

For other users of DefaultMessageListenerContainer (DMLC), I can simply
set the autoStart property on DMLC to "false", then have a method later
call start() on the DMLC.

 

I tried setting the autoStart property on the DMLC that's being provided
to the JMSConfigFeature to false, but it appears that CXF is explicitly
calling start() on the DMLC somewhere in the JMSFactory or somesuch.

 

Here's my jaxws configuration:

 

      <!-- JMS Endpoint -->

      <jaxws:endpoint id="CustomerServiceJMSPort"

 
xmlns:s="http://service.jjjj.com/Customer/CustomerService/v1"

            serviceName="s:CustomerServiceSEI"
implementor="#customerServiceImpl"

            address="jms://">

            <jaxws:features>

                  <bean
class="org.apache.cxf.transport.jms.JMSConfigFeature"

                        p:jmsConfig-ref="jmsConfig" />

                  <bean class="org.apache.cxf.feature.LoggingFeature" />

            </jaxws:features>

            <jaxws:properties>

                  <entry key="schema-validation-enabled" value="true" />

            </jaxws:properties>

      </jaxws:endpoint>

 

      <bean id="jmsConfig"
class="org.apache.cxf.transport.jms.JMSConfiguration"

            p:connectionFactory-ref="txnAwareQueueConnectionFactory"

            p:destinationResolver-ref="destinationResolver" 

            p:targetDestination="CDIRequestQueue"
p:replyDestination="CDIReplyQueue"

            p:wrapInSingleConnectionFactory="false"

            p:reconnectOnException="true" 

            p:transactionManager-ref="transactionManager"

            p:pubSubDomain="false" p:messageType="text"

            p:jmsProviderTibcoEms="true" p:useJms11="true" 

 
p:messageListenerContainer-ref="dpRequestMessageListenerContainer"

            />

 

      <bean id="dpRequestMessageListenerContainer" 

 
class="org.springframework.jms.listener.DefaultMessageListenerContainer"

            p:connectionFactory-ref="txnAwareQueueConnectionFactory" 

            p:destination-ref="jndi.CDIRequestQueue"

            p:autoStartup="false" />

 

 

Any thoughts?

 

Thanks in advance!

 

Jared Warren

jcpenney, Enterprise Marketing & Pricing Systems

972.431.3392 | A1-112 | MS 1120

6501 Legacy Dr., Plano, TX 75024

 

<font face="monospace"size="-3"><br>The information transmitted is intended only for the person or entity to which it is addressed and <br>may contain confidential and/or privileged material. If the reader of this message is not the intended<br>recipient, you are hereby notified that your access is unauthorized, and any review, dissemination,<br>distribution or copying of this message including any attachments is strictly prohibited. If you are not<br>the intended recipient, please contact the sender and delete the material from any computer.<br>

Re: How can I prevent auto-starting of a JMS endpoint?

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

Yes, currently JMSTansport always explicitly call DMLC.start() message  
when activate the JMSDestination(means when you start jaxws:endpoint  
with jms transport), I think it's by design, when you start a jaxws  
endpoint, it should be ready to consume the message from underlying  
transport. Would you please elaborate your scenario? How about you  
control the jaxws:endpoint start timing, that said, only start the  
jaxws:endpoint when you need it.

Freeman
On 2012-2-23, at 上午6:46, Jared S Warren wrote:

> I'd like to be able to prevent a JMS endpoint (<jaxws:endpoint> with
> JMSConfigFeature) from auto-starting when the server comes up.
>
>
>
> For other users of DefaultMessageListenerContainer (DMLC), I can  
> simply
> set the autoStart property on DMLC to "false", then have a method  
> later
> call start() on the DMLC.
>
>
>
> I tried setting the autoStart property on the DMLC that's being  
> provided
> to the JMSConfigFeature to false, but it appears that CXF is  
> explicitly
> calling start() on the DMLC somewhere in the JMSFactory or somesuch.
>
>
>
> Here's my jaxws configuration:
>
>
>
>      <!-- JMS Endpoint -->
>
>      <jaxws:endpoint id="CustomerServiceJMSPort"
>
>
> xmlns:s="http://service.jjjj.com/Customer/CustomerService/v1"
>
>            serviceName="s:CustomerServiceSEI"
> implementor="#customerServiceImpl"
>
>            address="jms://">
>
>            <jaxws:features>
>
>                  <bean
> class="org.apache.cxf.transport.jms.JMSConfigFeature"
>
>                        p:jmsConfig-ref="jmsConfig" />
>
>                  <bean  
> class="org.apache.cxf.feature.LoggingFeature" />
>
>            </jaxws:features>
>
>            <jaxws:properties>
>
>                  <entry key="schema-validation-enabled"  
> value="true" />
>
>            </jaxws:properties>
>
>      </jaxws:endpoint>
>
>
>
>      <bean id="jmsConfig"
> class="org.apache.cxf.transport.jms.JMSConfiguration"
>
>            p:connectionFactory-ref="txnAwareQueueConnectionFactory"
>
>            p:destinationResolver-ref="destinationResolver"
>
>            p:targetDestination="CDIRequestQueue"
> p:replyDestination="CDIReplyQueue"
>
>            p:wrapInSingleConnectionFactory="false"
>
>            p:reconnectOnException="true"
>
>            p:transactionManager-ref="transactionManager"
>
>            p:pubSubDomain="false" p:messageType="text"
>
>            p:jmsProviderTibcoEms="true" p:useJms11="true"
>
>
> p:messageListenerContainer-ref="dpRequestMessageListenerContainer"
>
>            />
>
>
>
>      <bean id="dpRequestMessageListenerContainer"
>
>
> class 
> ="org.springframework.jms.listener.DefaultMessageListenerContainer"
>
>            p:connectionFactory-ref="txnAwareQueueConnectionFactory"
>
>            p:destination-ref="jndi.CDIRequestQueue"
>
>            p:autoStartup="false" />
>
>
>
>
>
> Any thoughts?
>
>
>
> Thanks in advance!
>
>
>
> Jared Warren
>
> jcpenney, Enterprise Marketing & Pricing Systems
>
> 972.431.3392 | A1-112 | MS 1120
>
> 6501 Legacy Dr., Plano, TX 75024
>
>
>
> <font face="monospace"size="-3"><br>The information transmitted is  
> intended only for the person or entity to which it is addressed and  
> <br>may contain confidential and/or privileged material. If the  
> reader of this message is not the intended<br>recipient, you are  
> hereby notified that your access is unauthorized, and any review,  
> dissemination,<br>distribution or copying of this message including  
> any attachments is strictly prohibited. If you are not<br>the  
> intended recipient, please contact the sender and delete the  
> material from any computer.<br>

---------------------------------------------
Freeman Fang

FuseSource
Email:ffang@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com