cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frédéric Pirson (JIRA) <j...@apache.org>
Subject [jira] [Created] (CXF-6624) [SOAP][JMS] javax.jms.IllegalStateException when setting the exception listener
Date Mon, 05 Oct 2015 08:28:26 GMT
Frédéric Pirson created CXF-6624:
------------------------------------

             Summary: [SOAP][JMS] javax.jms.IllegalStateException when setting the exception
listener
                 Key: CXF-6624
                 URL: https://issues.apache.org/jira/browse/CXF-6624
             Project: CXF
          Issue Type: Bug
          Components: JMS, Transports
    Affects Versions: 3.1.1
            Reporter: Frédéric Pirson


Hello,

I need to use soap over jms via tibco for some service.

Spring config : 
{code:xml}
    <jaxws:endpoint
            xmlns:tns="http://blabla.be/WSDL/BE/BE_RiskAcceptance_BUS/1/GetRiskAcceptanceStatus/1"
            id="GetRiskAcceptanceStatus"
            serviceName="tns:GetRiskAcceptanceStatus"
            endpointName="tns:GetRiskAcceptanceStatus_Binding_JMS"
            implementor="#GetRiskAcceptanceStatusService" transportId="http://cxf.apache.org/transports/jms"
            address="jms:jndi:ESB.BE.BS.RiskAcceptance.BE_RiskAcceptance_BUS.1.GetRiskAcceptanceStatus.1.Request"
            >
        <jaxws:features>
            <ref bean="jmsConfigFeatureGetRiskAcceptanceStatus"/>
        </jaxws:features>
    </jaxws:endpoint>
{code}

When deployment occurs, I see every 5s some reconnection.

I analyzed what occurs and it comes from org.apache.cxf.transport.jms.JMSDestination. 

{code:java}
   private JMSListenerContainer createTargetDestinationListener() {
        Session session = null;
        try {
            connection = JMSFactory.createConnection(jmsConfig);
            connection.setExceptionListener(new ExceptionListener() {
                public void onException(JMSException exception) {
                    if (!shutdown) {
                        LOG.log(Level.WARNING, "Exception on JMS connection. Trying to reconnect",
exception);
                        restartConnection();
                    }
                }
            });
            session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            Destination destination = jmsConfig.getTargetDestination(session);

            PollingMessageListenerContainer container = new PollingMessageListenerContainer(connection,

                                                                                         
  destination, this);
            container.setConcurrentConsumers(jmsConfig.getConcurrentConsumers());
            container.setTransactionManager(jmsConfig.getTransactionManager());
            container.setMessageSelector(jmsConfig.getMessageSelector());
            container.setTransacted(jmsConfig.isSessionTransacted());
            container.setDurableSubscriptionName(jmsConfig.getDurableSubscriptionName());

            Executor executor = JMSFactory.createExecutor(bus, "jms-destination");
            container.setExecutor(executor);
            container.start();
            suspendedContinuations.setListenerContainer(container);
            connection.start();
            return container;
        } catch (JMSException e) {
            throw JMSUtil.convertJmsException(e);
        } finally {
            ResourceCloser.close(session);
        }
    }
{code}

The setExceptionListener invoked on a org.jboss.resource.adapter.jms.JmsSessionFactory throw
directly that exception with message : "This method is not applicable inside the application
server. See the J2EE spec, e.g. J2EE1.4 Section 6.6";

For the specs : http://java.cnam.fr/iagl/biblio/spec/j2ee-1_4-fr-spec.pdf page 103 + 104 

Something I do wrong or issue in jms transport ?

Regards



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message