axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Matthias.Gai...@t-systems.com>
Subject AW: Websphere MQ configuration
Date Wed, 23 Jul 2008 09:13:48 GMT
Hello again,

 

I figured out, I am already using the client transport type, which is specified via the the
"TRAN" parameter in the context.xml.

TRAN=0: bindings transport mode

TRAN=1: client transport mode.

 

So there is still the trace that I might have to set some user or unset some default user..
ot other authentication settings.

 

Any ideas?

 

Matthias.

 

Von: Gaiser, Matthias 
Gesendet: Mittwoch, 23. Juli 2008 10:59
An: axis-user@ws.apache.org
Betreff: AW: Websphere MQ configuration

 

Upul,

 

Thanks a lot. You are really helpful. Unfortunately, it is still not running. I now get the
following error:

[INFO] JMS Transport Receiver/Listener initialized...

[INFO] Connected to the JMS connection factory : java:comp/env/jms/BrokerQueueManagerWindows

[ERROR] Error connecting to Connection Factory : java:comp/env/jms/BrokerQueueManagerWindows

javax.jms.JMSSecurityException: MQJMS2013: Ungültige Sicherheitsauthentifizierung für MQQueueManager
übergeben

      at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:2022)

      at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:1496)

      at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:150)

      at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:185)

      at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:112)

      at org.apache.synapse.transport.jms.JMSConnectionFactory.connectAndListen(JMSConnectionFactory.java:244)

      at org.apache.synapse.transport.jms.JMSListener.start(JMSListener.java:104)

      at org.apache.axis2.engine.ListenerManager.start(ListenerManager.java:126)

      at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:442)

      at org.apache.axis2.transport.http.AxisAdminServlet.init(AxisAdminServlet.java:55)

      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)

      at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)

      at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)

      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)

      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

      at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)

      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

      at org.apache.catalina.core.StandardService.start(StandardService.java:448)

      at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)

      at org.apache.catalina.startup.Catalina.start(Catalina.java:552)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

      at java.lang.reflect.Method.invoke(Method.java:597)

      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)

      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

 

The error message translates (accordingly to hits on google) to "invalid security authentication
supplied for MQQueueManager". Through the pages I found there I assume it has something to
do with the transport type. I probably use the bindings transport type and should use the
client transport type, since the mqseries server runs on another computer. 

Another solution might be specifying user and password, but I did not need these to access
the Queue from my own JMS client.

 

Any more ideas? It would be really great.

I am happy to post my configuration afterwards to save other people from what I'm going through..


 

Matthias.

 

PS:My configuration so far looks as follows:

Axis2.xml:

<transportReceiver name="jms" 

                   class="org.apache.synapse.transport.jms.JMSListener">

    <parameter name="default">

        <parameter name="java.naming.factory.initial">org.apache.naming.java.javaURLContextFactory</parameter>

        <parameter name="transport.jms.ConnectionFactoryJNDIName">java:comp/env/jms/BrokerQueueManagerWindows</parameter>

        <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>

    </parameter>

</transportReceiver>

 

Context.xml:

<Resource name="jms/BrokerQueueManagerWindows"

        auth="Container"

                type="com.ibm.mq.jms.MQQueueConnectionFactory"

        factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"

                description="JMS Queue Connection Factory for sending messages"

                HOST="XXX"

                PORT="XXX"

                CHAN="XXX"

                TRAN="1"

                QMGR="XXX"/>

                

     <Resource

               name="TestService"

               auth="Container"

               type="com.ibm.mq.jms.MQQueue"

               factory="com.ibm.mq.jms.MQQueueFactory"

               description="JMS Queue for receiving messages from Dialog"

               QU="PDMWebConnector" />

 

 

 

Von: Upul Godage [mailto:upulg.dev@gmail.com] 
Gesendet: Dienstag, 22. Juli 2008 16:21
An: axis-user@ws.apache.org
Betreff: Re: Websphere MQ configuration

 

    <parameter name="default">
        <parameter name="java.naming.factory.initial">org.apache.naming.java.javaURLContextFactory</parameter>
        <parameter name="transport.jms.ConnectionFactoryJNDIName">java:comp/env/jms/BrokerQueueManagerWindows</parameter>
        <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    </parameter>

Add the transport.jms.ConnectionFactoryType to the receiver in the axis2.xml as above. It
is either "queue" or "topic" value. You can check the Synapse's axis2.xml for an example.

Upul

On Tue, Jul 22, 2008 at 5:32 PM, <Matthias.Gaiser@t-systems.com> wrote:

Hi Upul,

 

Thanks a lot for the fast answer. I tried out the Synapse JMS Listener, which somehow solved
one part of the problem, but I still get another error message, I am not sure about how to
resolve it.

 

[INFO] JMS Transport Receiver/Listener initialized...

[INFO] Connected to the JMS connection factory : java:comp/env/jms/BrokerQueueManagerWindows

[ERROR] Unable to determine type of Connection Factory - i.e. Queue/Topic

[INFO] Unable to determine type of Connection Factory - i.e. Queue/Topic

org.apache.synapse.transport.jms.AxisJMSException: Unable to determine type of Connection
Factory - i.e. Queue/Topic

      at org.apache.synapse.transport.jms.JMSConnectionFactory.handleException(JMSConnectionFactory.java:590)

      at org.apache.synapse.transport.jms.JMSConnectionFactory.connectAndListen(JMSConnectionFactory.java:230)

      at org.apache.synapse.transport.jms.JMSListener.start(JMSListener.java:104)

      at org.apache.axis2.engine.ListenerManager.start(ListenerManager.java:126)

      at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:442)

      at org.apache.axis2.transport.http.AxisAdminServlet.init(AxisAdminServlet.java:55)

      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)

      at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)

      at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)

      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)

      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

      at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)

      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

      at org.apache.catalina.core.StandardService.start(StandardService.java:448)

      at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)

      at org.apache.catalina.startup.Catalina.start(Catalina.java:552)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

      at java.lang.reflect.Method.invoke(Method.java:597)

      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)

      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

 

I am not so familiar with MQ Series and the Queue and Topic terms. Since there are not many
hits for "Unable to determine type of Connection Factory", I am quite helpless and would be
very grateful for any help.

 

Thanks,

Matthias.

 

 

Von: Upul Godage [mailto:upulg.dev@gmail.com] 
Gesendet: Dienstag, 22. Juli 2008 12:03
An: axis-user@ws.apache.org
Betreff: Re: Websphere MQ configuration

 

Most probably WebSphere MQ is JMS 1.0 compliant. But the Axis2's JMS listener is written for
JMS 1.1. The given method, javax.jms.ConnectionFactory.createConnection()Ljavax/jms/Connection,
was introduced in JMS 1.1.
Instead you can try the Apache Synapse's (http://synapse.apache.org/) JMS transport listener
(which is compliant with JMS 1.0) with Axis2 by taking the synapse transports jar and changing
the Axis2's axis2.xml pointing to synapse's JMS listener class.

Upul

On Tue, Jul 22, 2008 at 2:54 PM, <Matthias.Gaiser@t-systems.com> wrote:

Hi,

 

I am trying to publish a web service via WebSphere MQ and I am encountering some problems.

My steps so far included:

 

1. Created a WebService named "TestService".

 

2. Added in the axis2.xml the section:

<transportReceiver name="jms" 

                   class="org.apache.axis2.transport.jms.JMSListener">

    <parameter name="default">

        <parameter name="java.naming.factory.initial">org.apache.naming.java.javaURLContextFactory</parameter>

        <parameter name="transport.jms.ConnectionFactoryJNDIName">java:comp/env/jms/BrokerQueueManagerWindows</parameter>

    </parameter>

</transportReceiver>

 

3. Added to Tomcat a context.xml, containing:

<Resource name="jms/BrokerQueueManagerWindows"

                  auth="Container"

                  type="com.ibm.mq.jms.MQQueueConnectionFactory"

                  factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"

                  description="JMS Queue Connection Factory for sending messages"

                  HOST="XXX"

                  PORT="1111"

                  CHAN="XXX"

                  TRAN="1"

                  QMGR="XXX/>

<Resource

                  name="TestService"

                  auth="Container"

                  type="org.apache.activemq.command.ActiveMQQueue"

                  factory="org.apache.activemq.jndi.JNDIReferenceFactory"

                  physicalName="XXX" />

 

 

Now I know that the second resource should not be of an ActiveMQ-Type.. but I don't know which
type it should be for WebsphereMQ. Additionally I get some errors when I start up the tomcat:

[WARN] Error looking up destination with JNDI name : TestService to map its corresponding
provider specific Destination name

[WARN] JMS Destination with JNDI name : TestService does not exist

[ERROR] StandardWrapper.Throwable

java.lang.NoSuchMethodError: javax.jms.ConnectionFactory.createConnection()Ljavax/jms/Connection;

      at org.apache.axis2.transport.jms.JMSConnectionFactory.addDestination(JMSConnectionFactory.java:245)

      at org.apache.axis2.transport.jms.JMSListener.processService(JMSListener.java:174)

      at org.apache.axis2.transport.jms.JMSListener.init(JMSListener.java:138)

      at org.apache.axis2.engine.ListenerManager.start(ListenerManager.java:125)

      at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:442)

      at org.apache.axis2.transport.http.AxisAdminServlet.init(AxisAdminServlet.java:55)

      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)

      at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)

      at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)

      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)

      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

      at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)

      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

      at org.apache.catalina.core.StandardService.start(StandardService.java:448)

      at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)

      at org.apache.catalina.startup.Catalina.start(Catalina.java:552)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

      at java.lang.reflect.Method.invoke(Method.java:597)

      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)

      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

 

Can anybody give me some hints, a sample for websphere mq or a solution for my problem?

Thank you for any help.

 

Kind Regards

Matthias Gaiser

 

 

 


Mime
View raw message