Hi Dan,

Thank you for your good advice. I think keeping the "soap" stuff in the
soap binding is a very good idea.
https://issues.apache.org/jira/browse/CXF-2264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12727756#action_12727756
<https://issues.apache.org/jira/browse/CXF-2264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12727756#action_12727756>

liu

Daniel Kulp wrote:
> A test case (attached to a JIRA) would be good if you cannot figure this out.
>
> However, here is a pointer:
> When CXF looks in the WSDL to determine the transport factory, it looks at 
> the 
> FIRST extensor on the port that has a namespace that matches a transport 
> factory.  In your first example, it would be "soap" and thus would match the 
> "soap" transport.
>
> In the second, it would be "soapjms" and thus probably matches the JMS 
> transport and not the soap transport.   The jms transport probably doesn't 
> look for "soap:address".
>
> Not sure on the best course of action to solve this.   :-(     Possibly the 
> soap binding could reset the address on the transport or something.   Would 
> be 
> good to check if this is the case before diving in too deep.  
>
> Dan
>
>
>
>
>
> On Sat July 4 2009 7:51:40 am liucong wrote:
>   
>> Hi all,
>> When I implement the WSDL usage for SOAP/JMS, I encountered an exception.
>> I create an service and invoke it using wsdl-first.
>>
>> If the wsdl file looks like this[1] :
>> <wsdl:definitions>
>> <wsdl:service name="JMSGreeterService">
>> <wsdl:port binding="tns:JMSGreeterPortBinding" name="GreeterPort">
>> <soap:address
>> location="jms:jndi:dynamicQueues/test.cxf.jmstransport.queue?jndiInitialCon
>> textFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;jndiC
>> onnectionFactoryName=ConnectionFactory&amp;jndiURL=tcp://localhost:61616&amp
>> ;targetService=greeterService" />
>> <soapjms:timeToLive>1000</soapjms:timeToLive>
>> </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>>
>> This service works well.
>>
>> But if the wsdl file looks like this[2] :
>> <wsdl:definitions>
>> <wsdl:service name="JMSGreeterService">
>> <wsdl:port binding="tns:JMSGreeterPortBinding" name="GreeterPort">
>> <soapjms:timeToLive>1000</soapjms:timeToLive>
>> <soap:address
>> location="jms:jndi:dynamicQueues/test.cxf.jmstransport.queue?jndiInitialCon
>> textFactory=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;jndiC
>> onnectionFactoryName=ConnectionFactory&amp;jndiURL=tcp://localhost:61616&amp
>> ;targetService=greeterService" />
>> </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>>
>> The service is created correctly, but there is an error happen when I
>> invoke this service.
>> By debugging, I find that JMSTransportFactory.getConduit(EndpointInfo
>> endpointInfo, EndpointReferenceType target)'s target parameter is null.
>> It should be
>> "jms:jndi:dynamicQueues/test.cxf.jmstransport.queue?jndiInitialContextFacto
>> ry=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;jndiConnection
>> FactoryName=ConnectionFactory&amp;jndiURL=tcp://localhost:61616&amp;targetSe
>> rvice=greeterService".
>>
>> I think there are someting wrong with port parsing in wsdl.
>> Any ideas?
>>
>> best regards
>> liu
>>     
>
>   

Reply via email to