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.
more information on error :
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/Logout/parts/1.0}Logout
Exception in thread "main" org.osoa.sca.ServiceRuntimeException:
org.apache.tuscany.sca.monitor.MonitorRuntimeException:
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
at org.apache.tuscany.sca.node.impl.NodeImpl.analyzeProblems(NodeImpl.java:711)
at org.apache.tuscany.sca.node.impl.NodeImpl.configureNode(NodeImpl.java:634)
at org.apache.tuscany.sca.node.impl.NodeImpl.<init>(NodeImpl.java:200)
at
org.apache.tuscany.sca.node.impl.NodeFactoryImpl.createSCANodeFromClassLoader(NodeFactoryImpl.java:37)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:178)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:100)
at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:182)
at org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:63)
at Exec.main(Exec.java:14)
Caused by: org.apache.tuscany.sca.monitor.MonitorRuntimeException:
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
... 9 more
Caused by: 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
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl$Wrapper.getChildElements(WSDLOperationIntrospectorImpl.java:375)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl$Wrapper.getInputChildElements(WSDLOperationIntrospectorImpl.java:469)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl.isWrapperStyle(WSDLOperationIntrospectorImpl.java:113)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl.getOperation(WSDLOperationIntrospectorImpl.java:228)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLInterfaceIntrospectorImpl.getOperation(WSDLInterfaceIntrospectorImpl.java:84)
at
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSDLInterfaceContract(BindingWSDLGenerator.java:335)
at
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSDLDocument(BindingWSDLGenerator.java:205)
at
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.generateWSDL(BindingWSDLGenerator.java:163)
at
org.apache.tuscany.sca.binding.ws.xml.BindingBuilderImpl.build(BindingBuilderImpl.java:48)
at
org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBuilderImpl.buildReferenceBindings(ComponentReferenceBindingBuilderImpl.java:56)
at
org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBuilderImpl.build(ComponentReferenceBindingBuilderImpl.java:46)
at
org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl.build(CompositeBuilderImpl.java:271)
at
org.apache.tuscany.sca.node.impl.RuntimeBootStrapper.buildComposite(RuntimeBootStrapper.java:255)
at org.apache.tuscany.sca.node.impl.NodeImpl.configureNode(NodeImpl.java:632)
... 7 more
________________________________
De : Ruault Gaetan [mailto:[email protected]]
Envoyé : mardi 30 mars 2010 02:43
À : [email protected]
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:[email protected]]
Envoyé : mardi 30 mars 2010 01:57
À : [email protected]
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:[email protected]>
Sent: Monday, March 29, 2010 4:40 PM
To: [email protected]
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:[email protected]]
Envoyé : mardi 30 mars 2010 01:26
À : [email protected]
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:[email protected]>
Sent: Monday, March 29, 2010 3:51 PM
To: [email protected]
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