Hi Simon,

Sorry for the silence and delay to answer.
Thank you very much for the clever and heavy job you have done regarding this problem as I can notice you are very busy besides.

Indeed, it is so clever that I not sure I understand all well and I have some remarks and questions:

1) I have not JAXWS at my disposal and I did not even know it but I think I get what you have done ; from my side, as my project was not working with Tuscany, I realized a version in which I "manually" (well in fact Eclipse/Axis did it in my place) built Java proxies/stubs for accessing the Nursery WS but I was not able to integrate the result with Tuscany as you have done. Furthermore, I cannot trap the soap messages myself and need to contact the Nursery support which is not always available.

2) Nevertheless, I feel quite as I finally did not understand nothing about SCA when you mention not to use a promoted reference. In my understanding, where a reference points to a service that locates outside of the composite (domain), the reference has to be promoted, hasn' it ? Is the explanation coming from the fact that we indicate interface.wsdl instead of interface.java (roughly speaking we ask Tuscany not to use the java interface details - so, it has not to be promoted- but if the interface reference is promoted, Tuscany uses it despite that then goes wrong? )

I guess you have tried running your example with the reference as "not promoted" and succeeded? However, although I agree with your remarks about resulting namepaces differences in the "promoted reference case" (in particular "n3" that seems to have no relation with other namespaces), I noticed that "ns5" is equal to previous (example) "ns3" and it seems to be used in <sendSMS> block. So, example should work, shouldn't it?

For that matter, I would like to provide you with some elements I should have give you sooner. I am not sure they will help you but in case ... I extract the informations below from a "Nursery platform development guidelines for Apache Axis 1.X toolkit" document and I followed most of them along my testing.

I hope that it will help.

Regards,
Marina.

PS: do you always set package name to the firstname of user-list "complainer" or is it a joke? (Being frank, I have been pleasently surprised so...)

------------------------------------------------------
excerpt from guide document

B. Development steps
1. WSDL import in the Java project under Eclipse
We use the menu File/Import...

2. Code generation with WSDL file
a) Namespaces and packages mapping

The exact namespaces depend on each enabler WSDL file.

With MDSP Stage 2a Enablers, the mappings must be defined for the following namespace:
- http://com.osa.mdsp.enabler.sei/<Enabler>/<Version>/<Service>
- http://com.osa.mdsp.enabler.sei.eto/<Enabler>/<Version>
- http://com.osa.mdsp.enabler.sei.exception/<Enabler>/<Version>
- http://com.osa.mdsp.enabler.ecf/
Where:
- <Enabler> must be replaced by the Enabler name (example: SMSEnabler),
- <Version> must be replaced by the Enabler version (example: V1.0 for initial release, then
Vx_y for successive major releases Ð e.g. V2_0),
- <Service> must be replaced by the Enabler Service SEI name (example: SMSSEnderSEI). You will find the exact namespaces to map in the wsdl:definitions tag attributes.


On the SMS Enabler, there are four namespaces to map to custom java packages:

With MDSP Stage 2a Enablers, the mappings must be defined for the following namespace:
- http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/SMSSEnderSEI
- http://com.osa.mdsp.enabler.sei.eto/SMSEnabler/V2_0
- http://com.osa.mdsp.enabler.sei.exception/SMSEnabler/V2_0
- http://com.osa.mdsp.enabler.ecf/

Here is an extract of the WSDL file from the example:

<wsdl:definitions
targetNamespace="http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/ SMSSenderSEI"
xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:apachesoap="http://xml.apache.org/xml-soap";
xmlns:impl="http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/ SMSSenderSEI" xmlns:intf="http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/ SMSSenderSEI"
xmlns:tns1="http://com.osa.mdsp.enabler.sei.exception/SMSEnabler/V2_0";
xmlns:tns2="http://com.osa.mdsp.enabler.sei.eto/SMSEnabler/V2_0";
xmlns:tns4="http://com.osa.mdsp.enabler.ecf";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

In this example, we use the following package / namespace mapping:
Namespace Package name http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/SMSSenderSEI com.osa.mdsp.csp.ena.smms.sms.enabler.sei http:// com.osa.mdsp.enabler.ecf com.osa.mdsp.csp.ena.enagw.ecf http://com.osa.mdsp.enabler.sei.eto/SMSEnabler/ V2_0 com.osa.mdsp.csp.ena.smms.sms.enabler.sei.eto http://com.osa.mdsp.enabler.sei.exception/SMSEnabler/ V2_0 com.osa.mdsp.csp.ena.smms.sms.enabler.sei.exception

b) Java code generation using Eclipse WTP wizard
With the right click over the WSDL file in Eclipse, we use the contextual menu Web
Services/Generate Client:
We obtain the following wizard: ...

We click on the Next button and obtain the following window: ...

On this window, we select Define custom mapping for namespace to package and click on the Next

button. The final window appears where we enter the Java packages / Namespaces mapping:...
We then use the Finish button.

The list of Java classes being generated is detailed hereafter:
Package Java classes / interfaces Description
com.osa.mdsp.csp.ena.smms.sms.
enabler.sei SMSSenderEnablerRemote_V2_0.java Service definition interface (SMSSender Enabler) SMSSenderEnablerRemote_V2_0Proxy.java Implementation of the Service interface SMSSenderEnablerRemoteService_V2_0.java Remote interface for the SMSSender Enabler Proxy Service SMSSenderEnablerRemoteService_V2_0Locator.java Implementation of the SMSSender Enabler Proxy SMSSenderEnablerRemoteSoapBinding_V2_0Stub.java Stub class that implement the service definition interface
com.osa.mdsp.csp.ena.enagw.e
cf EnablerException.java EnablerException class (Business Exception). Some SOAP Faults are encapsulated in an EnablerException.
com.osa.mdsp.csp.ena.smms.s
ms.enabler.sei.eto SMSMessageETO.java SMSMessage class (Business object) SMSBinaryMessageETO.java SMSBinaryMessage class (Business object)
com.osa.mdsp.csp.ena.smms.s
ms.enabler.sei.exception SMSException.java SMSException class (Business Exception). Some SOAP Faults are encapsulated in a SMSException.

------------------------------------------------------



Le 20 juin 08 à 17:55, Simon Laws (JIRA) a écrit :


[ https://issues.apache.org/jira/browse/TUSCANY-2355? page=com.atlassian.jira.plugin.system.issuetabpanels:comment- tabpanel&focusedCommentId=12606805#action_12606805 ]

Simon Laws commented on TUSCANY-2355:
-------------------------------------

OK so I think I see your problem now. If I change my composite to use a promoted reference in a similar way to your composite...

    <component name="ReferenceComponent">
        <implementation.java class="marina.ReferenceComponentImpl"/>
    </component>

<reference name="PromotedReference" promote="ReferenceComponent/ serviceComponent"> <interface.wsdl interface="http://com.osa.mdsp.enabler.sei/ SMSEnabler/V2_0/SMSSenderSEI#wsdl.interface (SMSSenderEnablerRemote_V2_0)" /> <binding.ws wsdlElement="http://com.osa.mdsp.enabler.sei/ SMSEnabler/V2_0/SMSSenderSEI/#wsdl.binding (SMSSenderEnablerRemoteSoapBinding_V2_0)" uri="http://localhost:8081/ SMSSenderEnablerRemoteV20"/>
    </reference>

The the SOAP message that is sent is slightly different from the one I say with the previous composite file.

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/ envelope/">
  <soapenv:Body>
<ns3:sendSMS xmlns:ns5="http://com.osa.mdsp.enabler.sei.eto/ SMSEnabler/V2_0"
                 xmlns:ns4="http://com.osa.mdsp.enabler.ecf";
xmlns:ns3="http:// smssendersei.v2_0.smsenabler.com.osa.mdsp.enabler.sei/" xmlns:ns2="http:// com.osa.mdsp.enabler.sei.exception/SMSEnabler/V2_0">
      <arg0 />
      <arg1>
        <ns5:content>Some message</ns5:content>
<ns5:earliestDeliveryTime xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nil="true" /> <ns5:expiryDate xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:nil="true" /> <ns5:priority xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:nil="true" /> <ns5:recipient xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:nil="true" /> <ns5:senderAddress xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nil="true" /> <ns5:contentSentEncoding xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:nil="true" /> <ns5:flash xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:nil="true" />
      </arg1>
    </ns3:sendSMS>
  </soapenv:Body>
</soapenv:Envelope>

It clearly has a different namespace for the sendSMS element. Not to mention different element names within that. SO the workround for now is to not use promoted references in this scenario while we look to see what is going wrong.

Simon

CONTINUED Need help again on binding to external web service with login authentication --------------------------------------------------------------------- ------------------

                Key: TUSCANY-2355
URL: https://issues.apache.org/jira/browse/ TUSCANY-2355
            Project: Tuscany
         Issue Type: Bug
         Components: Java SCA Axis Binding Extension
   Affects Versions: Java-SCA-1.1
Environment: Windows XP, Eclipse 3.3.2 , tuscany incubating 1.1 , java 6
           Reporter: Marina Deslaugiers
Attachments: Aspen.tcpdump, MDSP-SMSSenderEnablerSEI- V2_0.wsdl, Support.tcpdump, WSmediawebtranslatorwebsms.composite


Hi,
As planned this morning, we have made directly test with the person
responsible of web service "Nursery" support to users.
We have detected various problems.
I attach (I hope joined files will actually be sent otherwise please let me know) two "sniff" files at the TCP level on communication with the web
server "Nursery":
- The first one (see Aspen.tcpdump) corresponds to TCP frames sent
by Tuscany that does not work
- The second one (see Support.tcpdump) corresponds to TCP frames sent by the Nursery support -after modification (correction) of the Tuscany
frames- that does work
Following are the differences and explanations reported by the person
responsible for the Nursery WS support:
1) the namespaces used in SOAP BODY are not in conformity with the WSDL. Indeed, one can find the value "http://translatewithsms"; as the "pseudo" namespace _ns_. Replacing that value with the one defined in the WSDL say "http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/ SMSSenderSEI",
the SOAP frame works
Note that I realized that "translatewithsms" is the package name of my Eclipse project (containing in particular java client, interfaces etc.
files).
2) at HTTP level, the web service in the Nursery is protected by "Basic Authentication" ; but the "Authorization" header is not sent by
Tuscany
(NB: at the current state, we cannot know whether it is actually a
problem EXCEPT if Tuscany uses pre-emptive authentication mecanisms
      3) Note that Tuscany sends the authentication
credentials(user/password) using WS-Security that is not taken into account by the Nursery platform. This is not a problem however, credentials are not
 operate.
NB:  tcpdump files can be opened with WireShark http://
www.wireshark.org/download.html
I might be responsible for these problems as I have probably made mistakes in coding (at least regarding the policy expression). Please can you help me
in correcting.
Thanks you very much.
Regards,
Marina.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Reply via email to