Asankha,
Sorry for being unclear about this. Let me try to explain.
I built axis.war from the source pulled from the trunk today. Then I made just
the following modification in axis2.xml - basically added the jms transport
receiver.
---
<transportReceiver name="jms"
class="org.apache.axis2.transport.jms.JMSListener">
<parameter name="myTopicConnectionFactory" locked="false">
....
</parameter>
<parameter name="myQueueConnectionFactory" locked="false">
.....
</parameter>
<parameter name="default" locked="false">
.....
</parameter>
</transportReceiver>
---
At this point the axis2.war has just one service that gets generated by default
with the build - version.aar.
When I deployed the war on jboss, I see the following trace on the jboss console
==
13:16:20,750 INFO [ModuleDeployer] Deploying module: soapmonitor
13:16:21,203 INFO [ServiceDeployer] Deploying Web service: version.aar
13:16:21,359 WARN [JMSConnectionFactory] Error looking up destination with JNDI
name : Version to map its corresponding provider specific Destination name
13:16:21,375 WARN [JMSConnectionFactory] JMS Destination with JNDI name : Versi
on does not exist
13:16:21,500 ERROR [JMSConnectionFactory] Unable to create a Destination with JN
DI name : Version
javax.jms.JMSException: This destination does not exist !QUEUE.Version
at org.jboss.mq.server.JMSDestinationManager.createQueue(JMSDestinationM
anager.java:613)
at org.jboss.mq.server.JMSServerInterceptorSupport.createQueue(JMSServer
InterceptorSupport.java:111)
at org.jboss.mq.server.TracingInterceptor.createQueue(TracingInterceptor
.java:259)
at org.jboss.mq.server.JMSServerInvoker.createQueue(JMSServerInvoker.jav
a:117)
at org.jboss.mq.il.uil2.ServerSocketManagerHandler.handleMsg(ServerSocke
tManagerHandler.java:136)
at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleMsg(SocketManager.j
ava:395)
at org.jboss.mq.il.uil2.msgs.BaseMsg.run(BaseMsg.java:398)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExec
utor.java:748)
at java.lang.Thread.run(Thread.java:595)
13:16:21,515 INFO [ListenerManager]
====
Is this the expected behavior? If so, then if we have jms transport enabled,
every service deployed must explicitly set the transport mechanism in the
services.xml? This means all the sample services that axis2 provides need to be
modified since in most of them the services.xml does not contain any specific
transport.
Or should the behavior be that if no transport is specified in the services.xml
then axis2 will assume that it is http by default? IMO this should be the
expected behavior.
Shantanu
----- Original Message ----
From: Asankha C. Perera <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Sent: Thursday, April 12, 2007 9:44:52 AM
Subject: Re: Axis2: soap/jms question
Hi Shantanu
One
issue that I am having now is that if I have multiple services
deployed, for each of the services that do not have the transport
specified in the services.xml, such as the version.aar, the code is
assuming that enableAllTransports variable is true.
I think this is the default Axis2 behavior and nothing specific to the
JMS transport
So,
if I have another service deployed, say version.aar, that do not have
any transport specific elements specified in the services.xml, the
JMSListener line 122 code that checks to see if it is a JMS service as
shown below, is returning true.
What to you mean "another service..." do you have more than one
version.aar file? or version.aar and version1.aar with different
services.xmls? if so do they share the same service name?
if
(JMSUtils.isJMSService(service)) {
processService(service);
}
I think the implementation of the above method is correct
public static boolean isJMSService(AxisService service) {
boolean process = service.isEnableAllTransports();
if (process) {
return true;
} else {
List transports = service.getExposedTransports();
for (int i = 0; i < transports.size(); i++) {
if (Constants.TRANSPORT_JMS.equals(transports.get(i))) {
return true;
}
}
}
return false;
}
The
reason being that enableAllTransports in the AxisService is set to true
for the Version service.
I have enabled only one service explicitly to be jms using the
services.xml and that service is being deployed fine and the
JMSListener correctly configured for it.
I would assume that all other services that do not specify any
transport specific configurations in the services.xml, the code would
would not try to enable it for all transports and it was working fine
previously. Has anything changed in AxisService code that sets the
enableAllTransports to be true by default?
As a result of the above issue, the listener throws the following
exception that is stopping JMSListener from listening to any queue at
all. Note that it is trying to deploy the Version service as a JMS
service as shown below, which is wrong.
I do not think I correctly identify the issue you are raising.. could
you verify this and post a JIRA so that we could discuss this issue on
a new mail thread? I would try to attend to this sometime next week
asankha
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]