Hi Jackey, get this issue fixed
Freeman Freeman Fang wrote: > Hi Jackey, > > >From the log, JMSConduit shouldn't wait for response since it's oneway > method. > I go through the code and found there is a bug for oneway invocation, > fill jira [1] to track it. > > I will fix it up asap > [1]https://issues.apache.org/activemq/browse/SM-1334 > > Freeman > > Jackey Ding wrote: > >> Any response? >> >> Jackey >> >> 2008/4/25 Jackey Ding <[EMAIL PROTECTED]>: >> >> >> >>> Hi Freeman, >>> >>> 1. I have a JMS provider running outside of SMX, the WSDL is >>> <wsdl:definitions name="JMSGreeterService" >>> targetNamespace="http://cxf.apache.org/jms_greeter" >>> xmlns="http://schemas.xmlsoap.org/wsdl/" >>> xmlns:jms="http://cxf.apache.org/transports/jms" >>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >>> xmlns:tns="http://cxf.apache.org/jms_greeter" >>> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" >>> xmlns:x1="http://cxf.apache.org/jms_greeter/types"> >>> <wsdl:types> >>> <schema targetNamespace="http://cxf.apache.org/jms_greeter/types" >>> xmlns="http://www.w3.org/2001/XMLSchema" >>> elementFormDefault="qualified"> >>> <element name="sayHi"> >>> <complexType/> >>> </element> >>> <element name="sayHiResponse"> >>> <complexType> >>> <sequence> >>> <element name="responseType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> <element name="greetMe"> >>> <complexType> >>> <sequence> >>> <element name="requestType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> <element name="greetMeResponse"> >>> <complexType> >>> <sequence> >>> <element name="responseType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> <element name="greetMeOneWay"> >>> <complexType> >>> <sequence> >>> <element name="requestType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> </schema> >>> </wsdl:types> >>> >>> >>> <wsdl:message name="sayHiRequest"> >>> <wsdl:part element="x1:sayHi" name="in"/> >>> </wsdl:message> >>> <wsdl:message name="sayHiResponse"> >>> <wsdl:part element="x1:sayHiResponse" name="out"/> >>> </wsdl:message> >>> <wsdl:message name="greetMeRequest"> >>> <wsdl:part element="x1:greetMe" name="in"/> >>> </wsdl:message> >>> <wsdl:message name="greetMeResponse"> >>> <wsdl:part element="x1:greetMeResponse" name="out"/> >>> </wsdl:message> >>> <wsdl:message name="greetMeOneWayRequest"> >>> <wsdl:part element="x1:greetMeOneWay" name="in"/> >>> </wsdl:message> >>> >>> <wsdl:portType name="JMSGreeterPortType"> >>> <wsdl:operation name="sayHi"> >>> <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/> >>> <wsdl:output message="tns:sayHiResponse" >>> name="sayHiResponse"/> >>> </wsdl:operation> >>> >>> <wsdl:operation name="greetMe"> >>> <wsdl:input message="tns:greetMeRequest" >>> name="greetMeRequest"/> >>> <wsdl:output message="tns:greetMeResponse" >>> name="greetMeResponse"/> >>> </wsdl:operation> >>> >>> <wsdl:operation name="greetMeOneWay"> >>> <wsdl:input message="tns:greetMeOneWayRequest" >>> name="greetMeOneWayRequest"/> >>> </wsdl:operation> >>> </wsdl:portType> >>> >>> <wsdl:binding name="JMSGreeterPortBinding" >>> type="tns:JMSGreeterPortType"> >>> <soap:binding style="document" transport=" >>> http://cxf.apache.org/transport/jms"/<http://cxf.apache.org/transport/jms%22/> >>> >>> <wsdl:operation name="greetMe"> >>> <soap:operation soapAction="" style="document"/> >>> <wsdl:input name="greetMeRequest"> >>> <soap:body use="literal"/> >>> </wsdl:input> >>> <wsdl:output name="greetMeResponse"> >>> <soap:body use="literal"/> >>> </wsdl:output> >>> </wsdl:operation> >>> >>> <wsdl:operation name="sayHi"> >>> <soap:operation soapAction="" style="document"/> >>> <wsdl:input name="sayHiRequest"> >>> <soap:body use="literal"/> >>> </wsdl:input> >>> <wsdl:output name="sayHiResponse"> >>> <soap:body use="literal"/> >>> </wsdl:output> >>> </wsdl:operation> >>> >>> <wsdl:operation name="greetMeOneWay"> >>> <soap:operation soapaction="" style="document"/> >>> <wsdl:input name="greetMeOneWayRequest"> >>> <soap:body use="literal"/> >>> </wsdl:input> >>> </wsdl:operation> >>> </wsdl:binding> >>> >>> <wsdl:service name="JMSGreeterService"> >>> <wsdl:port binding="tns:JMSGreeterPortBinding" >>> name="GreeterPort"> >>> <jms:address >>> destinationStyle="queue" >>> jndiConnectionFactoryName="ConnectionFactory" >>> >>> jndiDestinationName="dynamicQueues/test.cxf.jmstransport.queue"> >>> >>> <jms:JMSNamingProperty >>> name="java.naming.factory.initial" >>> value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> >>> <jms:JMSNamingProperty name="java.naming.provider.url" >>> value="tcp://yfgm-2003b:61616"/> >>> >>> </jms:address> >>> </wsdl:port> >>> </wsdl:service> >>> </wsdl:definitions> >>> >>> 2. I create a CXF-BC provider to communicate with that serivce. the wsdl >>> is just as the same with above, the xbean.xml is >>> <?xml version="1.0" encoding="UTF-8"?> >>> <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" >>> xmlns:greeter="http://cxf.apache.org/jms_greeter"> >>> <cxfbc:provider wsdl="classpath:[EMAIL PROTECTED]" >>> locationURI="tcp://yfgm-2003b:61616" >>> service="greeter:JMSGreeterService" >>> endpoint="GreeterPort"/> >>> </beans> >>> >>> 3. Create a CXF-BC consumer as a proxied endpoint that other application >>> can access the service via SMX, the xbean.xml is >>> <?xml version="1.0" encoding="UTF-8"?> >>> <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" >>> xmlns:greeter="http://cxf.apache.org/jms_greeter"> >>> <cxfbc:consumer wsdl="classpath:[EMAIL PROTECTED]" >>> service="greeter:JMSGreeterService" >>> endpoint="GreeterPort2" >>> targetEndpoint="GreeterPort" >>> targetService="greeter:JMSGreeterService" >>> /> >>> </beans> >>> >>> And the WSDL is >>> <wsdl:definitions name="JMSGreeterService" >>> targetNamespace="http://cxf.apache.org/jms_greeter" >>> xmlns="http://schemas.xmlsoap.org/wsdl/" >>> xmlns:jms="http://cxf.apache.org/transports/jms" >>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >>> xmlns:tns="http://cxf.apache.org/jms_greeter" >>> xmlns:xsd="http://www.w3.org/2001/XMLSchema" >>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" >>> xmlns:x1="http://cxf.apache.org/jms_greeter/types"> >>> <wsdl:types> >>> <schema targetNamespace="http://cxf.apache.org/jms_greeter/types" >>> xmlns="http://www.w3.org/2001/XMLSchema" >>> elementFormDefault="qualified"> >>> <element name="sayHi"> >>> <complexType/> >>> </element> >>> <element name="sayHiResponse"> >>> <complexType> >>> <sequence> >>> <element name="responseType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> <element name="greetMe"> >>> <complexType> >>> <sequence> >>> <element name="requestType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> <element name="greetMeResponse"> >>> <complexType> >>> <sequence> >>> <element name="responseType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> <element name="greetMeOneWay"> >>> <complexType> >>> <sequence> >>> <element name="requestType" type="xsd:string"/> >>> </sequence> >>> </complexType> >>> </element> >>> </schema> >>> </wsdl:types> >>> >>> >>> <wsdl:message name="sayHiRequest"> >>> <wsdl:part element="x1:sayHi" name="in"/> >>> </wsdl:message> >>> <wsdl:message name="sayHiResponse"> >>> <wsdl:part element="x1:sayHiResponse" name="out"/> >>> </wsdl:message> >>> <wsdl:message name="greetMeRequest"> >>> <wsdl:part element="x1:greetMe" name="in"/> >>> </wsdl:message> >>> <wsdl:message name="greetMeResponse"> >>> <wsdl:part element="x1:greetMeResponse" name="out"/> >>> </wsdl:message> >>> <wsdl:message name="greetMeOneWayRequest"> >>> <wsdl:part element="x1:greetMeOneWay" name="in"/> >>> </wsdl:message> >>> >>> <wsdl:portType name="JMSGreeterPortType"> >>> <wsdl:operation name="sayHi"> >>> <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/> >>> <wsdl:output message="tns:sayHiResponse" >>> name="sayHiResponse"/> >>> </wsdl:operation> >>> >>> <wsdl:operation name="greetMe"> >>> <wsdl:input message="tns:greetMeRequest" >>> name="greetMeRequest"/> >>> <wsdl:output message="tns:greetMeResponse" >>> name="greetMeResponse"/> >>> </wsdl:operation> >>> >>> <wsdl:operation name="greetMeOneWay"> >>> <wsdl:input message="tns:greetMeOneWayRequest" >>> name="greetMeOneWayRequest"/> >>> </wsdl:operation> >>> </wsdl:portType> >>> >>> <wsdl:binding name="JMSGreeterPortBinding" >>> type="tns:JMSGreeterPortType"> >>> <soap:binding style="document" transport=" >>> http://cxf.apache.org/transport/jms"/<http://cxf.apache.org/transport/jms%22/> >>> >>> <wsdl:operation name="greetMe"> >>> <soap:operation soapAction="" style="document"/> >>> <wsdl:input name="greetMeRequest"> >>> <soap:body use="literal"/> >>> </wsdl:input> >>> <wsdl:output name="greetMeResponse"> >>> <soap:body use="literal"/> >>> </wsdl:output> >>> </wsdl:operation> >>> >>> <wsdl:operation name="sayHi"> >>> <soap:operation soapAction="" style="document"/> >>> <wsdl:input name="sayHiRequest"> >>> <soap:body use="literal"/> >>> </wsdl:input> >>> <wsdl:output name="sayHiResponse"> >>> <soap:body use="literal"/> >>> </wsdl:output> >>> </wsdl:operation> >>> >>> <wsdl:operation name="greetMeOneWay"> >>> <soap:operation style="document"/> >>> <wsdl:input name="greetMeOneWayRequest"> >>> <soap:body use="literal"/> >>> </wsdl:input> >>> </wsdl:operation> >>> </wsdl:binding> >>> >>> <wsdl:service name="JMSGreeterService"> >>> <wsdl:port binding="tns:JMSGreeterPortBinding" >>> name="GreeterPort2"> >>> <jms:address >>> destinationStyle="queue" >>> jndiConnectionFactoryName="ConnectionFactory" >>> >>> jndiDestinationName="dynamicQueues/test.cxf.jmstransport.queue"> >>> >>> <jms:JMSNamingProperty >>> name="java.naming.factory.initial" >>> value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> >>> <jms:JMSNamingProperty name="java.naming.provider.url" >>> value="tcp://localhost:61616"/> >>> >>> </jms:address> >>> </wsdl:port> >>> </wsdl:service> >>> </wsdl:definitions> >>> >>> 4. Then I run the client, the error occur like I show in the pervious >>> mail. >>> public final class Client { >>> private Client() { >>> } >>> public static void main(String[] args) throws Exception { >>> >>> if (args.length == 0) { >>> System.out.println("please specify wsdl"); >>> System.exit(1); >>> } >>> >>> if (args.length == 1) { >>> System.out.println("please specify url"); >>> System.exit(1); >>> } >>> >>> if (args.length == 2) { >>> System.out.println("please specify Service Name"); >>> System.exit(1); >>> } >>> >>> if (args.length == 3) { >>> System.out.println("please specify Port Name"); >>> System.exit(1); >>> } >>> >>> final QName SERVICE_NAME = >>> new QName(args[1], args[2]); >>> final QName PORT_NAME = >>> new QName(args[1], args[3]); >>> File wsdl = new File(args[0]); >>> JMSGreeterService service = new JMSGreeterService(wsdl.toURL(), >>> SERVICE_NAME); >>> JMSGreeterPortType greeter = >>> (JMSGreeterPortType)service.getPort(PORT_NAME, JMSGreeterPortType.class); >>> System.out.println("Invoking sayHi..."); >>> System.out.println("server responded with: " + greeter.sayHi()); >>> System.out.println(); >>> System.out.println("Invoking greetMe..."); >>> System.out.println("server responded with: " + >>> greeter.greetMe(System.getProperty("user.name"))); >>> System.out.println(); >>> System.out.println("Invoking greetMeOneWay..."); >>> greeter.greetMeOneWay(System.getProperty("user.name")); >>> System.out.println("No response from server as method is OneWay"); >>> System.out.println(); >>> >>> System.exit(0); >>> } >>> } >>> Thanks & best regards >>> Jackey >>> >>> 2008/4/25 Freeman Fang <[EMAIL PROTECTED]>: >>> >>> Hi Jackey, >>> >>> >>>> How you run the tests in smx? Using maven? >>>> And just append your configuration. >>>> >>>> Regards >>>> >>>> Freeman >>>> >>>> Jackey Ding wrote: >>>> >>>> >>>>> hi, >>>>> >>>>> I just run some cxf-bc tests in smx. All the cases are run ok, but I >>>>> >>>>> >>>> found >>>> >>>> >>>>> some error message show in the smx console. Is something wrong with my >>>>> configurations? >>>>> >>>>> 2008-4-25 13:06:12 org.apache.cxf.transport.jms.JMSConduit receive >>>>> 严重: JMSClientTransport.receive() timed out. No message available. >>>>> ERROR - CxfBcComponent - Error processing exchange >>>>> >>>>> >>>> InOnly[ >>>> >>>> >>>>> id: ID:192.168.1.8-11983ed72fd-4:3 >>>>> status: Active >>>>> role: provider >>>>> service: >>>>> {http://cxf.apache.org/jms_greeter}JMSGreeterService<http://cxf.apache.org/jms_greeter%7DJMSGreeterService> >>>>> endpoint: GreeterPort >>>>> operation: >>>>> {http://cxf.apache.org/jms_greeter}greetMeOneWay<http://cxf.apache.org/jms_greeter%7DgreetMeOneWay> >>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:jbi=" >>>>> http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" xmlns:msg=" >>>>> http://cxf.apache.org/j >>>>> ms_greeter" name="greetMeOneWayRequest" >>>>> >>>>> >>>> type="msg:greetMeOneWayRequest" >>>> >>>> >>>>> version="1.0"><jbi:part><greetMeOneWay xmlns=" >>>>> http://cxf.apache.org/jms_greete >>>>> >>>>> >>>>> >>>> r/types"><requestType>Administrator</requestType></greetMeOneWay></jbi:part></jbi:message> >>>> >>>> >>>>> ] >>>>> java.io.IOException: javax.jms.JMSException: >>>>> >>>>> >>>> JMSClientTransport.receive() >>>> >>>> >>>>> timed out. No message available. >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.cxf.transport.jms.JMSConduit$JMSOutputStream.handleResponse(JMSConduit.java:369) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.cxf.transport.jms.JMSConduit$JMSOutputStream.doClose(JMSConduit.java:258) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:156) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:200) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) >>>> >>>> >>>>> at >>>>> >>>>> >>>>> >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) >>>> >>>> >>>>> at java.lang.Thread.run(Thread.java:595) >>>>> >>>>> Thanks & best regards >>>>> Jackey >>>>> >>>>> >>>>> >>>> >>>> > > >
