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
>>>>
>>>>         
>>>       

Reply via email to