Hi Marina

Comments in line...

Regards

Simon

On Tue, Jun 24, 2008 at 7:23 PM, Marina Deslaugiers <
[EMAIL PROTECTED]> wrote:

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


The JAXWS tooling came as part of the Java 6 JDK that I happened to be using
for this test. You should be able to do the same thing using with Axis or
Eclipse. The part you need is the Java interface that represents the WSDL
interface. I took this generated java interface and used it to type the
reference as follows:


public class ReferenceComponentImpl implements ReferenceComponent {

    @Reference
    protected SMSSenderEnablerRemoteV20 serviceComponent;

...

The Axis2 software comes with a tool you can use to trap the soap messages.
Take a look at (http://ws.apache.org/axis2/1_0/soapmonitor-module.html) for
Axis2 or (http://ws.apache.org/axis/java/soapmonitor-user-guide.html) for
axis 1 I have to admit I haven't used it for a while (I used it in one of it
very early incarnations).


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

You are right. It's typically the case that you would use promoted
references to represent references to external services. This is
particularly inmportant if you expect that your composite will be used
recursively to implement other components as in this case the composite
level promoted references can be overriden. However, having said this,
Tuscany today will quite happily allow you to specific remote bindings for
references and services at the component level. Hence I was able to get the
sample to work.


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


In the non-promoted case:

<sendSMS>        is in "
http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/SMSSenderSEI";
  <sms>                is in "
http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/SMSSenderSEI";
  <ns3:content>   is in "http://com.osa.mdsp.enabler.sei.eto/SMSEnabler/V2_0
"

In the promoted case:

<ns3:sendSMS>    is in "
http://smssendersei.v2_0.smsenabler.com.osa.mdsp.enabler.sei/";
     <arg1>                is not namespace qualified
       <ns5:content> is in "
http://com.osa.mdsp.enabler.sei.eto/SMSEnabler/V2_0";

Which indicates to me that there is a problem with the way that Tuscany
processes promoted references. You are right that ns5 = ns3 but there is
something strange going on with the other namespaces.



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

OK, I see you have a set of custom namespace mappings defined. I would
expect these to be caried in the package names of the generated Java and
match the namespaces as defined in the WSDL. This information would be used
by Tuscany to generate the outgoing request messages. Looking at the mail
you sent previously with the maually alterd SOAP messages  it looks like
your deployed service is expecting the following...

<_ns_:sendSMS> is in "
http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/SMSSenderSEI";
  <ns2:param1>     is in "
http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/SMSSenderSEI";
       <content>         is not namespace qualified

This is similar to my non-promoted case except that in my case the <content>
element is qulified but in your case it isn't. This is a little odd as the
schema in your WSDL specifies elementFormDefault="qualified" at both the
schema and element level for this element.


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


I just wanted to create a local test n my machine with a name that would
remind me why I had created it;-)


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