Thank you guys, it looks that this configuration works:

<?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:jaxws="http://cxf.apache.org/jaxws";
   xmlns:jms="http://cxf.apache.org/transports/jms";
   xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.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"/>

   <jms:destination name="{
http://services.com/}DummyJMSServiceImplPort.jms-destination";>
       <jms:address destinationStyle="queue"
                    jndiConnectionFactoryName="ConnectionFactory"
                    jndiDestinationName="foo.bar">

       <jms:JMSNamingProperty name="java.naming.factory.initial"
                              value="
org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
       <jms:JMSNamingProperty name="java.naming.provider.url"
                              value="tcp://localhost:2212"/>

       </jms:address>
   </jms:destination>

</beans>

Although i´m very confused about how can i make a client to this Service JMS
Endpoint. I have been looking the sample "jms_queue" in the cxf
2.0distribution but it´s not clear for me doing it with the Spring
configuration.

A few questions:

1. Should I have an implementor class, i mean, an DummyJMSServiceImpl class?

2. Should I have a DummyJMSService interface for the server and client?

2. Should I have a wsdl file?

I´d like having similar to an HTTP client like this:

<?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:jaxws="http://cxf.apache.org/jaxws";
   xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                          http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd";>

   <bean id="penelope.wsclient.dummyServiceClient" class="
es.cm.penelope.services.DummyService"
             factory-bean="penelope.wsclient.dummyServiceClientFactory"
factory-method="create"/>

   <bean id="penelope.wsclient.dummyServiceClientFactory"
         class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
         <property name="serviceClass" value="
es.cm.penelope.services.DummyService" />
         <property name="address" value="
http://toshiba001:8080/penelope-wsprovider/DummyService"; />
   </bean>
</beans>


Is this possible?.

Do you have a JMS sample with Spring configuration?.

(I only want to send a message to a queue, snif)

Thanks a lot!.

On 7/24/07, Willem Jiang <[EMAIL PROTECTED]> wrote:

Hi,


You can use CXF over JMS, we support JMS transport in CXF.

There are some JMS spring configuration updates in CXF 2.0, you need to
change
<jms:destination id="{
http://services.com/}DummyJMSServiceImplPort.jms-destination";>

to

<jms:destination name="{
http://services.com/}DummyJMSServiceImplPort.jms-destination";> .

It just need to change the 'id' to 'name'. I will update the wiki for it.

BTW,  if you just do not want to use servlet transport , you could remove
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  from the
spring configuration file.


Cheers,

Willem.

Juan José Vázquez Delgado wrote:
> Hi guys,
>
> I´m trying configure an endpoint to use JMS queues with CXF. The use
> case is
> a client that sends a message to an activemq queue. I have a few
> questions
> about this:
>
> 1. Should I using CXF over JMS?
>
> I´m not sure if i should using CXF over HTTP, and for example Camel for
> routing the message towards the queue, instead.
>
> 2. Spring configuration
>
> I have tried to configure an endpoint over JMS with Spring but it
doesn´t
> work. I used this documentation:
>
> http://cwiki.apache.org/CXF20DOC/jms-transport.html
>
> First of all, if I only use the configuration namespace xmlns:jms="
> http://cxf.apache.org/transports/jms"; like this:
>
> <?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:jaxws="http://cxf.apache.org/jaxws";
>    xmlns:jms="http://cxf.apache.org/transports/jms";
>    xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>                           http://cxf.apache.org/jaxws
> http://cxf.apache.org/schemas/jaxws.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-servlet.xml" />
>    <import resource="classpath:META-INF/cxf/cxf-extension-jms.xml"/>
>
>
>    <jms:destination id="{
> http://services.com/}DummyJMSServiceImplPort.jms-destination";>
>        <jms:address destinationStyle="queue"
>                     jndiConnectionFactoryName="ConnectionFactory"
>                     jndiDestinationName="foo.bar">
>
>        <jms:JMSNamingProperty name="java.naming.factory.initial"
>                               value="
> org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
>        <jms:JMSNamingProperty name="java.naming.provider.url"
>                               value="tcp://localhost:2212"/>
>
>        </jms:address>
>    </jms:destination>
>
> </beans>
>
>
> i get this error:
>
> The matching wildcard is strict, but no declaration can be found for
> element
> 'jms:destination'.
>
> Then i tried to add the schemaLocation like this:
>
> <beans xmlns="http://www.springframework.org/schema/beans";
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>    xmlns:jaxws="http://cxf.apache.org/jaxws";
>    xmlns:jms="http://cxf.apache.org/transports/jms";
>    xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.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";>
>
> but then i get this error:
>
> org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '{
> http://services.com/}DummyJMSServiceImplPort.jms-destination' is not a
> valid
> value for 'NCName'.
>    at
>
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException
>
> (ErrorHandlerWrapper.java:236)...
>
> Please, i need help to continue, any ideas?.
>
> Thanks.
>
> Juanjo
>

Reply via email to