[
https://issues.apache.org/jira/browse/CXF-2970?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paulo Rodrigez reopened CXF-2970:
---------------------------------
Thanks for the help.
With a brocker I can create the service, but the client only connects to the
server and does nothing when I call the method: client.greetMe("World")
Here is my client code:
private ProjectClient() {
// You just need to set the address with JMS URI
String address = "jms:jndi:dynamicQueues/test.cxf.jmstransport.queue3"
+ "?jndiInitialContextFactory"
+ "=org.apache.activemq.jndi.ActiveMQInitialContextFactory"
+
"&jndiConnectionFactoryName=ConnectionFactory&jndiURL=tcp://127.0.0.1:61610";
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// And specify the transport ID with SOAP over JMS specification
factory.setTransportId(JMSSpecConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID);
factory.setServiceClass(Project.class);
factory.setAddress(address);
Project client = (Project)factory.create();
LOGGER.debug(client.getClass());
String reply = client.greetMe("World");
LOGGER.debug(reply);
}
Whant's wrong? Or is this a bug?
> Service cannot create a Socket
> ------------------------------
>
> Key: CXF-2970
> URL: https://issues.apache.org/jira/browse/CXF-2970
> Project: CXF
> Issue Type: Bug
> Affects Versions: 2.3
> Environment: Windows XP, Java jdk1.6.0_20, Maven 2.2.1, Eclipse
> 3.6.0, activemq-core 5.4.0
> Reporter: Paulo Rodrigez
> Assignee: Willem Jiang
> Priority: Minor
>
> Hey
> I've got a problem to create a service SOAP over JMS. I have created a WSDL
> and use you codegen plugin to generate the server-skel. Now I try to start
> this service with the following lines:
> {code}
> public class ProjectServer {
> private ProjectServer() throws NamingException {
> // You just need to set the address with JMS URI
> String address =
> "jms:jndi:dynamicQueues/test.cxf.jmstransport.queue"
> + "?jndiInitialContextFactory"
> +
> "=org.apache.activemq.jndi.ActiveMQInitialContextFactory"
> +
> "&jndiConnectionFactoryName=ConnectionFactory&jndiURL=tcp://localhost:61610";
> Project implementor = new ProjectImpl();
> JaxWsServerFactoryBean svrFactory = new
> JaxWsServerFactoryBean();
> svrFactory.setServiceClass(Project.class);
> svrFactory.setAddress(address);
> // And specify the transport ID with SOAP over JMS specification
>
> svrFactory.setTransportId(JMSSpecConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID);
> svrFactory.setServiceBean(implementor);
> svrFactory.create();
> }
> /**
> * @param args
> * @throws NamingException
> */
> public static void main(String[] args) throws NamingException {
> new ProjectServer();
> }
> }
> {code}
> Here is my WSDL:
> {code}
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://www.mycompany.com/project/service"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:soapjms="http://www.w3.org/2008/07/soap/bindings/JMS/"
> xmlns:model="http://www.mycompany.com/project/model"
> name="project"
> targetNamespace="http://www.mycompany.com/project/service">
> <wsdl:types>
> <xsd:schema
> targetNamespace="http://www.mycompany.com/project/model">
> <xsd:element name="GreetMeOp">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="in"
> type="xsd:string" />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="GreetMeOpResponse">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="out"
> type="xsd:string" />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> <xsd:element name="StringName"
> type="xsd:string"></xsd:element>
> <xsd:element name="StringText"
> type="xsd:string"></xsd:element>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="greetMeRequest">
> <wsdl:part element="model:StringName" name="name" />
> </wsdl:message>
> <wsdl:message name="greetMeResponse">
> <wsdl:part element="model:StringText" name="greetings" />
> </wsdl:message>
> <wsdl:portType name="project">
> <wsdl:operation name="greetMe">
> <wsdl:input message="tns:greetMeRequest" />
> <wsdl:output message="tns:greetMeResponse" />
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="projectSOAP" type="tns:project">
> <soap:binding style="document"
>
> transport="http://www.w3.org/2008/07/soap/bindings/JMS/" />
> <!-- <soapjms:jndiContextParameter name="name" value="value" />
> -->
> <soapjms:jndiConnectionFactoryName>ConnectionFactory
> </soapjms:jndiConnectionFactoryName>
>
> <soapjms:jndiInitialContextFactory>org.apache.activemq.jndi.ActiveMQInitialContextFactory
> </soapjms:jndiInitialContextFactory>
> <soapjms:jndiURL>tcp://localhost:61616</soapjms:jndiURL>
> <soapjms:deliveryMode>PERSISTENT</soapjms:deliveryMode>
> <soapjms:priority>5</soapjms:priority>
> <soapjms:timeToLive>1000</soapjms:timeToLive>
> <wsdl:operation name="greetMe">
> <soap:operation
> soapAction="http://www.mycompany.com/project/service/GreetMeOp" />
> <wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> <wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="project">
> <wsdl:port binding="tns:projectSOAP" name="ServicePort">
> <soap:address
> location="jms:jndi:dynamicQueues/test.cxf.jmstransport.queue" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> {code}
> Error is:
> INFO: Setting the server's publish address to be
> jms:jndi:dynamicQueues/test.cxf.jmstransport.queue?jndiInitialContextFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&jndiConnectionFactoryName=ConnectionFactory&jndiURL=tcp://localhost:61610
> Exception in thread "main" org.springframework.jms.UncategorizedJmsException:
> Uncategorized exception occured during JMS processing; nested exception is
> javax.jms.JMSException: Could not connect to broker URL:
> tcp://localhost:61610. Reason: java.net.ConnectException: Connection refused:
> connect
> at
> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
> at
> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:431)
> at
> org.apache.cxf.transport.jms.JMSFactory.resolveOrCreateDestination(JMSFactory.java:337)
> at
> org.apache.cxf.transport.jms.JMSFactory.createJmsListener(JMSFactory.java:290)
> at
> org.apache.cxf.transport.jms.JMSFactory.createJmsListener(JMSFactory.java:175)
> at
> org.apache.cxf.transport.jms.JMSDestination.activate(JMSDestination.java:112)
> at
> org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:48)
> at
> org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:181)
> at
> org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:838)
> at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:127)
> at
> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:186)
> at
> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:183)
> at
> com.mycompany.project.server.ProjectServer.<init>(ProjectServer.java:26)
> at
> com.mycompany.project.server.ProjectServer.main(ProjectServer.java:35)
> Caused by: javax.jms.JMSException: Could not connect to broker URL:
> tcp://localhost:61610. Reason: java.net.ConnectException: Connection refused:
> connect
> at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
> at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:286)
> at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
> at
> org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:178)
> at
> org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter.doCreateConnection(UserCredentialsConnectionFactoryAdapter.java:178)
> at
> org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter.createConnection(UserCredentialsConnectionFactoryAdapter.java:150)
> at
> org.springframework.jms.connection.SingleConnectionFactory.doCreateConnection(SingleConnectionFactory.java:342)
> at
> org.springframework.jms.connection.SingleConnectionFactory.initConnection(SingleConnectionFactory.java:288)
> at
> org.springframework.jms.connection.SingleConnectionFactory.createConnection(SingleConnectionFactory.java:225)
> at
> org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184)
> at
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:456)
> ... 13 more
> Caused by: java.net.ConnectException: Connection refused: connect
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
> at java.net.Socket.connect(Socket.java:529)
> at
> org.apache.activemq.transport.tcp.TcpTransport.connect(TcpTransport.java:483)
> at
> org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:446)
> at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
> at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
> at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
> at
> org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:72)
> at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
> at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
> at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:266)
> ... 22 more
> As sample I use this: http://cxf.apache.org/docs/soap-over-jms-10-support.html
> Regards,
> Paulo
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.