Have you tried to use a freshly installed tibco EMS? Perhaps it has to
do with the EMS configuration.
In any case the exception seems to mean that a connection is using the
temporary destination that may not use it. In my case of the missing
SingleConnectionFactory it was because the connection that reveived the
message on the server was not the same as the one that sent sent the
message back to the temp queue.
The strange thing is that in the case of the old style configuration the
SingleConnectionFactory is atutomatically used. So there should be no
case where the jms transport is using more than one connection.
Greetings
Christian
Ed Scriven schrieb:
Christian,
I am halfway through getting the sample together. Hopefully I'll have
it up and running by midday tomorrow.
At present the only difference I can see is the version of Tibco we
are using - I am using 4.3.0.
Regards,
Ed
2009/1/29 Christian Schneider <[email protected]>:
Hi Ed,
I have created an example with an old style config but were not abble to
reproduce the problem in this way. I will attach my configs.
Perhaps you can try with these settings. I only had to add a queue
definition for my queue name to the queues.conf. Apart from this I used a
freshly installed tibco ems.
It would be great if you can provide a sample maven project that reproduces
the problem this week. Dan wanted to ship the cxf 2.1.4 today and I asked
him to delay the release for some
days to fix this.
Greetings
Christian
--------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version
2.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the
License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jms="http://cxf.apache.org/transports/jms"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/transports/jms
http://cxf.apache.org/schemas/configuration/jms.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jms.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
<jaxws:client id="CustomerService"
xmlns:customer="http://customerservice.example.com/"
serviceName="customer:CustomerServiceService"
endpointName="customer:CustomerServiceEndpoint"
address="jms://"
serviceClass="com.example.customerservice.CustomerService">
</jaxws:client>
<jms:conduit
name="{http://customerservice.example.com/}CustomerServiceEndpoint.jms-conduit">
<jms:address destinationStyle="queue"
jndiConnectionFactoryName="QueueConnectionFactory"
jndiDestinationName="test.cxf.jmstransport.queue"
useJms11="true">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="com.tibco.tibjms.naming.TibjmsInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="tibjmsnaming://localhost:7222" />
</jms:address>
</jms:conduit>
</beans>
---------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jms="http://cxf.apache.org/transports/jms"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/transports/jms
http://cxf.apache.org/schemas/configuration/jms.xsd
">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jms.xml" />
<jaxws:endpoint xmlns:customer="http://customerservice.example.com/"
id="CustomerService" address="jms://"
serviceName="customer:CustomerServiceService"
endpointName="customer:CustomerServiceEndpoint"
implementor="com.example.customerservice.impl.CustomerServiceImpl">
</jaxws:endpoint>
<jms:destination
name="{http://customerservice.example.com/}CustomerServiceEndpoint.jms-destination">
<jms:address destinationStyle="queue"
jndiConnectionFactoryName="QueueConnectionFactory"
jndiDestinationName="test.cxf.jmstransport.queue"
useJms11="true">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="com.tibco.tibjms.naming.TibjmsInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="tibjmsnaming://localhost:7222" />
</jms:address>
</jms:destination>
</beans>
------------------------------------------
Ed Scriven schrieb:
Christian,
I have updated my configuration to the new config style with
SingleConnectionFactory and the same problems persist. I'll try and
get a sample maven project made up for you. As mentioned, all my code
is on a segregated network with no internet access so this may take me
a day or so.
Regards,
Ed
2009/1/29 Christian Schneider <[email protected]>:
Hi Ed,
I have been able to reproduce the error on 2.2-SNAPSHOT now. It seems to
happen when the ConnectionFactory is not wrapped in a
SingleConnectionFactory.
With the config style you use this should happen automatically.
Could you provide me with a complete maven sample project that shows the
error? This would help debugging into the problem.
As a workaround you can use the new config style as explained in :
http://cwiki.apache.org/CXF20DOC/using-the-jmsconfigfeature.html
When you wrap the ConnectionFactory like in the example the error should
not
occur. Still I would like to fix this of course ;-)
Greetings
Christian
Ed Scriven schrieb:
Christian,
I have tested my configuration with Tibco 4.3.0 and CXF 2.2-SNAPSHOT.
Unfortunately problems persist.
Although javax.jms.InvalidDestinationException is no longer thrown,
the client times out. Inspecting the Tibco logs shows that the
temporary queue is created successfully but "created receiver failed:
invalid temporary queue" remains.
For your information, my CXF configuration is as follows (please note
that this has been manually typed over from a segregated network):
Server:
<bean id="systemParametersService"
class="system.parameters.SystemParametersServiceImpl" />
<jaxws:endpoint id="systemParameters"
implementor="#systemParametersService" address="jms://" />
<jms:destination
name="{http://system.parameters/SystemParametersServiceImpl}SystemParametersServiceImplPort.jms-destination">
<jms:address destinationStyle="queue"
jndiConnectionFactoryName="system.parameters.JMSConnectionFactory"
jndiDestinationName="system.parameters.SOAP"
useJms11="true">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="com.tibco.tibjms.naming.TibjmsInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="tibjmsnaming://localhost:7222" />
</jms:destination>
Client:
<jaxws:client id="systemParametersClient"
serviceClass="system.parameters.SystemParametersService"
address="jms://" />
<jms:conduit
name="{http://system.parameters/SystemParametersServiceImpl}SystemParametersServicePort.jms-conduit">
<jms:address destinationStyle="queue"
jndiConnectionFactoryName="system.parameters.JMSConnectionFactory"
jndiDestinationName="system.parameters.SOAP"
useJms11="true">
<jms:JMSNamingProperty name="java.naming.factory.initial"
value="com.tibco.tibjms.naming.TibjmsInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url"
value="tibjmsnaming://localhost:7222" />
</jms:conduit>
Regards,
Ed
2009/1/28 Christian Schneider <[email protected]>:
Could you try to checkout the CXF head from subversion, compile it and
try
it with your project.
I was not yet able to identify the source of the problem but for me it
seems
solved on the head.
If it works for you too we can be quite sure that CXF 2.1.4 will
include
the
fix for this issue.
If your have subversion and maven installed the following will work:
svn co http://svn.apache.org/repos/asf/cxf/trunk
cd trunk
set MAVEN_OPTS=-Xmx512M -XX:MaxPermSize=128M
mvn -Pfastinstall
In your project you then include the just compiled version as:
2.2-SNAPSHOT
Greetings
Christian
Ed Scriven schrieb:
Hello Christian,
Did you get a chance to check your own samples with Tibco EMS?
Regards,
Ed
2009/1/21 Christian Schneider <[email protected]>
Hi Ed,
I will check my own sample with tibco ems.
Greetings
Christian
Ed Scriven schrieb:
Hello,
I am experiencing problems getting JAX-WS CXF with Tibco JMS to
work.
My
configuration is derived from the
http://cwiki.apache.org/CXF20DOC/jax-ws-java-first-with-jms-transport.htmland
http://cwiki.apache.org/CXF20DOC/jms-transport.html. I am using
Spring.
If I provide a jndiReplyDestinationName on the
jms:conduit/jms:address
element all works fine. Unfortunately when I remove this attribute
and
expect temporary queues instead Tibco throws a
javax.jms.InvalidDestinationException:
Invalid temporary destination exception. This exception is raised
from
the
Spring DefaultMessageListenerContainer requesting Tibco libraries to
create
a consumer.
Having inspected the Tibco logs the temporary queue is created
successfully
named $TMP$.EMS-SERVER.9A049772E795.2. The logs do state that
"created
receiver failed: invalid temporary queue".
I have spent a good day trawling Google for anything related to this
issue,
but with no success. Apologies not stack traces nor code, they are
on
a
segregated network with no Internet access. I can get them if
required.
Has anyone experience CXF with Tibco JMS? Has anyone experienced
temporary
queue problems before?
Regards,
Ed
--
Christian Schneider
---
http://www.liquid-reality.de
--
Christian Schneider
---
http://www.liquid-reality.de
--
Christian Schneider
---
http://www.liquid-reality.de
--
Christian Schneider
---
http://www.liquid-reality.de
--
Christian Schneider
---
http://www.liquid-reality.de