I don't understand why Tuscany try to generate WSDL file because : - I use binding.ws as reference - I have set the wsdlLocation attribute with the uri of my wsdl file.
________________________________ De : Ruault Gaetan [mailto:grua...@sopragroup.com] Envoyé : mardi 30 mars 2010 02:43 À : user@tuscany.apache.org Objet : RE: Error with INOUT parameters Hi, I regenerate Interfaces with wsimport and custromization like this <bindings xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://java.sun.com/xml/ns/jaxws"> <enableWrapperStyle>false</enableWrapperStyle> </bindings> and now when i launch tuscany i have this error 30 mars 2010 02:39:37 org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator ATTENTION: Exception while generating WSDL for ModificationAdresseMail/login 30 mars 2010 02:39:37 org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator GRAVE: Exception thrown was: org.apache.tuscany.sca.interfacedef.wsdl.impl.InvalidWSDLException: The XML schema element does not have a type: {http://linedata.com/WS/Login/parts/1.0}Login thanks ________________________________ De : Raymond Feng [mailto:enjoyj...@gmail.com] Envoyé : mardi 30 mars 2010 01:57 À : user@tuscany.apache.org Objet : Re: Error with INOUT parameters 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 <mailto:grua...@sopragroup.com> 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 <mailto:grua...@sopragroup.com> 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