Hi,
It seems that you hit a bug reported by
https://issues.apache.org/jira/browse/TUSCANY-1646. As a result, we generate
the WSDL from the java interface and it ends up with a similar but different
WSDL.
Thanks,
Raymond
----- Original Message -----
From: "Marco Dalco" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, September 04, 2007 3:53 AM
Subject: Referencing an external WebService
Hi,
I am trying to reference an external WebService, hosted on JBoss from
Tuscany. The WebService on JBoss is an EJB with a @WebService
annotation. Using a tool like SoapUI to access the WebService works
fine. From Tuscany it doesn't work, but I can see (using an intermediate
logging proxy tool, Trivial Proxy) that Tuscany is trying to access the
WebService, without reading the WSDL first (even if I specify
wsdli:wsdlLocation with the URL followed by "?WSDL") and that the
message sent to JBoss is quite similar to the one SoapUI sends. The key
differences are:
1) The namespace of the method invoked, that in the Tuscany
message has an additional "xsd" at the end
2) The name of the parameter of the method, which is "arg0" with
SoapUI and "param0" with Tuscany
Modifying and sending the Tuscany message with SoapUI I can see that the
point 1 is causing the failure and point 2 just causes the parameter
passed to the EJB to be null.
I don't know which versions of the namespace and parameter are correct,
since I am using beta software (JBoss 5.0.0.-beta2 and Tuscany revision
#568537).
I tried using the "requires attribute", but Tuscany is complaining about
the content not being a proper QName (tried 'requires="soap/1.1"').
How can I make them work together? Is it a kind of bug or a matter of
versions?
Here are the messages I sent:
(SoapUI):
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ejb="http://ejb.sca_ws_reference.ubiquity.net/">
<soapenv:Header/>
<soapenv:Body>
<ejb:getWelcome>
<!--Optional:-->
<arg0>Hello!!!</arg0>
</ejb:getWelcome>
</soapenv:Body>
</soapenv:Envelope>
(Tuscany):
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address
<wsa:ReferenceParameters />
</wsa:From>
<wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address
<wsa:ReferenceParameters>
<axis2ns2:conversationID
xmlns:axis2ns2="http://www.osoa.org/xmlns/sca/1.0">d9353779-ca14-43d2-9e
5c-d0735b5f4b09</axis2ns2:conversationID>
</wsa:ReferenceParameters>
</wsa:From>
</soapenv:Header>
<soapenv:Body>
<_ns_:getWelcome
xmlns:_ns_="http://ejb.sca_ws_reference.ubiquity.net/xsd">
<_ns_:param0>Hello!!!</_ns_:param0>
</_ns_:getWelcome>
</soapenv:Body>
</soapenv:Envelope>
JBoss reply:
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header></env:Header>
<env:Body>
<env:Fault
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<faultcode>env:Client
</faultcode>
<faultstring>Endpoint
{http://ejb.sca_ws_reference.ubiquity.net/}SampleServiceImplPort does
not contain operation meta data for:
{http://ejb.sca_ws_reference.ubiquity.net/xsd}getWelcome
</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
Sca composite file:
<composite
xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://ejb.sca_ws_reference.ubiquity.net/"
xmlns:tns="http://ejb.sca_ws_reference.ubiquity.net/"
xmlns:ejb="http://ejb.sca_ws_reference.ubiquity.net/"
xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
name="samplejeews">
<service
name="SampleService"
promote="SampleServiceComponent">
<interface.java
interface="net.ubiquity.sca_ws_reference.ejb.SampleService" />
</service>
<component name="SampleServiceComponent">
<implementation.java
class="net.ubiquity.sca_ws_reference.ejb.SampleServiceImpl" />
<reference name="ExternalWebService">
<binding.ws
port="18080"
uri="http://localhost:18080/soa_sample_sca_ws_reference-tuscany0/_Sample
ServiceImpl"> <!--18080 is the port of the proxy logger -->
</binding.ws>
</reference>
</component>
</composite>
Thanks,
Marco
Information contained in this e-mail and any attachments are intended for
the use of the addressee only, and may contain confidential information of
Ubiquity Software Corporation. All unauthorized use, disclosure or
distribution is strictly prohibited. If you are not the addressee, please
notify the sender immediately and destroy all copies of this email. Ubiquity
Software Corporation plc, a company registered under the laws of England and
Wales, Registration 2719723, registered offices at Eastern Business Park,
Building 3, Wern Fawr Lane, St. Mellons, Cardiff CF3 5EA, Wales, United
Kingdom.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]