The tricky thing here is that LoginResp element contain more than one child 
elements. By default, wsimport tries to generate a doc-lit-wrapper style. Maybe 
you can try to generate a BARE style java interface which takes Login and 
produces LoginResp?

The command is like:

wsimport -b <binding xml>

The binding xml can be defined following the syntax at 
https://jax-ws.dev.java.net/jax-ws-20-fcs/docs/customizations.html.

Thanks,
Raymond


From: Ruault Gaetan 
Sent: Monday, March 29, 2010 4:40 PM
To: user@tuscany.apache.org 
Subject: RE: Error with INOUT parameters


Hi,
I use Tuscany the last 1.x

I have'nt any reason to use this pattern but wsimport generate this format with 
the wsdl  and i can't modify this wsdl.

Have you a solution to change the geneated interface?

Thanks

Gaetan



--------------------------------------------------------------------------------
De : Raymond Feng [mailto:enjoyj...@gmail.com] 
Envoyé : mardi 30 mars 2010 01:26
À : user@tuscany.apache.org
Objet : Re: Error with INOUT parameters


Hi,

Are you using Tuscany 1.x or 2.x?

We have some basic support in 1.x for INOUT parameter but you can have at most 
one JAX-WS Holder. 

2.x doesn't support that yet and we need to port such feature from 1.x to 2.x.

Do you have a particular reason to use this pattern? I understand some WSDL 
style (for example, the input and output uses the same Message) will trigger 
the generation of JAX-WS holders.

Thanks,
Raymond


From: Ruault Gaetan 
Sent: Monday, March 29, 2010 3:51 PM
To: user@tuscany.apache.org 
Subject: Error with INOUT parameters


Hi,

I try to consume  a Login Service defined by  the wsdl join to mail.

I generate interface by  wsimport  
it generate an login operation like this :

    @WebMethod(operationName = "Login", action = 
"E69676F6C4F20514F43594D4A336F646")
    @RequestWrapper(localName = "Login", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, className = 
"fr.xxxxx.xxx.webservicemi.webservice.Login")
    @ResponseWrapper(localName = "LoginResp", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, className = 
"fr.xxxx.xxxx.webservicemi.webservice.LoginResp")
    public void login(
        @WebParam(name = "loginID", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";)
        String loginID,
        @WebParam(name = "password", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";)
        String password,
        @WebParam(name = "userCategory", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.INOUT)
        Holder<String> userCategory,
        @WebParam(name = "categoryID", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";)
        String categoryID,
        @WebParam(name = "language", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.INOUT)
        Holder<String> language,
        @WebParam(name = "currency", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.INOUT)
        Holder<String> currency,
        @WebParam(name = "dossier", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";)
        String dossier,
        @WebParam(name = "sessionID", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.OUT)
        Holder<String> sessionID,
        @WebParam(name = "lastConnection", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.OUT)
        Holder<XMLGregorianCalendar> lastConnection,
        @WebParam(name = "lastTransaction", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.OUT)
        Holder<XMLGregorianCalendar> lastTransaction,
        @WebParam(name = "userName", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.OUT)
        Holder<String> userName,
        @WebParam(name = "personID", targetNamespace = 
"http://linedata.com/WS/Login/parts/1.0";, mode = WebParam.Mode.OUT)
        Holder<Integer> personID)
        throws LoginFault
    ;



when i try to use it i get an  Tuscany  error :

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 7, Size: 
7
 at java.util.ArrayList.RangeCheck(Unknown Source)
 at java.util.ArrayList.get(Unknown Source)
 at 
org.apache.tuscany.sca.databinding.jaxb.JAXBWrapperHelper.getPropertyDescriptor(JAXBWrapperHelper.java:82)
 at 
org.apache.tuscany.sca.databinding.jaxb.JAXBWrapperHelper.wrap(JAXBWrapperHelper.java:127)
 at 
org.apache.tuscany.sca.databinding.jaxb.JAXBWrapperHandler.setChildren(JAXBWrapperHandler.java:85)
 at 
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:183)
 at 
org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:45)
 at 
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:113)
 at 
org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediateInput(MediatorImpl.java:431)
 at 
org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:65)
 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:349)
 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:193)
 at $Proxy34.login(Unknown Source)
 at 
fr.xxxxx.xxxxxx.webservicemi.modifieradressemail.impl.ModifierAdresseMailImpl.modifierAdresseMail(ModifierAdresseMailImpl.java:44)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at 
org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:156)
 at 
org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61)
 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:349)
 at 
org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:193)
 at $Proxy32.modifierAdresseMail(Unknown Source)
 at Exec.main(Exec.java:19)


can you help me ?
 thanks

Gaetan





Reply via email to