Btw, you shouldn't use locationURI for the cxf bc provider configuration
with jms transport, we just parse it from the wsdl.

Cheers

Freeman

Freeman Fang wrote:
> 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
>>>>>>
>>>>>>         
>>>>>>           
>>>>>>             
>>>>>       
>>>>>         
>>>>>           
>>   
>>     
>
>
>   

Reply via email to