Hi,
I have a wsdl like this
<definitions targetNamespace="http://linedata.com/WS/Login/1.0
<http://linedata.com/WS/Login/1.0> "
xmlns:tns="http://linedata.com/WS/Login/1.0
<http://linedata.com/WS/Login/1.0> "
xmlns:parts="http://linedata.com/WS/Login/parts/1.0
<http://linedata.com/WS/Login/parts/1.0> "
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/
<http://schemas.xmlsoap.org/wsdl/soap/> "
xmlns:xsd="http://www.w3.org/2001/XMLSchema
<http://www.w3.org/2001/XMLSchema> "
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
<http://schemas.xmlsoap.org/wsdl/> "
xmlns="http://schemas.xmlsoap.org/wsdl/
<http://schemas.xmlsoap.org/wsdl/> ">
<types>
<xsd:schema targetNamespace="http://linedata.com/WS/Login/1.0
<http://linedata.com/WS/Login/1.0> "
xmlns:xsd="http://www.w3.org/2001/XMLSchema
<http://www.w3.org/2001/XMLSchema> ">
<xsd:import namespace="http://linedata.com/WS/Login/parts/1.0
<http://linedata.com/WS/Login/parts/1.0> "
schemaLocation="masteri_login.xsd" />
</xsd:schema>
</types>
<message name="LoginRequest">
<part name="parameters" element="parts:Login" />
</message>
<message name="LoginResponse">
<part name="response" element="parts:LoginResp" />
</message>
<message name="LoginFault">
<part name="LoginFault" element="parts:miFault" />
</message>
<portType name="LoginPort">
<operation name="Login">
<documentation>
Login description
</documentation>
<input message="tns:LoginRequest" />
<output message="tns:LoginResponse" />
<fault name="fault" message="tns:LoginFault" />
</operation>
</portType>
then when i generate java interface with wsimport with customization
for SOAPBinding ParametersStyle BARE
I Get an interface like this for the Login operation
@WebMethod(operationName = "Login", action =
"E69676F6C4F20514F43594D4A336F646")
@WebResult(name = "LoginResp", partName = "response")
public LoginResp login(
@WebParam(name = "Login", targetNamespace =
"http://linedata.com/WS/Login/parts/1.0
<http://linedata.com/WS/Login/parts/1.0> ", partName = "parameters")
Login parameters)
throws LoginFault;
then when I launch a Tuscany application i get this 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/Login/parts/1.0}Login
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:63
4)
at org.apache.tuscany.sca.node.impl.NodeImpl.<init>(NodeImpl.java:200)
at
org.apache.tuscany.sca.node.impl.NodeFactoryImpl.createSCANodeFromClassL
oader(NodeFactoryImpl.java:37)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultS
CADomain.java:178)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(Defaul
tSCADomain.java:100)
at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADoma
in.java:182)
at
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.jav
a: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.WSDLOperationIntrospectorI
mpl$Wrapper.getChildElements(WSDLOperationIntrospectorImpl.java:375)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorI
mpl$Wrapper.getInputChildElements(WSDLOperationIntrospectorImpl.java:469
)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorI
mpl.isWrapperStyle(WSDLOperationIntrospectorImpl.java:113)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorI
mpl.getOperation(WSDLOperationIntrospectorImpl.java:228)
at
org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLInterfaceIntrospectorI
mpl.getOperation(WSDLInterfaceIntrospectorImpl.java:84)
at
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSD
LInterfaceContract(BindingWSDLGenerator.java:335)
at
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.createWSD
LDocument(BindingWSDLGenerator.java:205)
at
org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator.generateW
SDL(BindingWSDLGenerator.java:163)
at
org.apache.tuscany.sca.binding.ws.xml.BindingBuilderImpl.build(BindingBu
ilderImpl.java:48)
at
org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBu
ilderImpl.buildReferenceBindings(ComponentReferenceBindingBuilderImpl.ja
va:56)
at
org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceBindingBu
ilderImpl.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(Runt
imeBootStrapper.java:255)
at
org.apache.tuscany.sca.node.impl.NodeImpl.configureNode(NodeImpl.java:63
2)
... 7 more
If i change interface Declaration like this (add "parts:" prefix for
@WebParam Name) like in wsdl file:
@WebMethod(operationName = "Login", action =
"E69676F6C4F20514F43594D4A336F646")
@WebResult(name = "LoginResp", partName = "response")
public LoginResp login(
@WebParam(name = "parts:Login", targetNamespace =
"http://linedata.com/WS/Login/parts/1.0
<http://linedata.com/WS/Login/parts/1.0> ", partName = "parameters")
Login parameters)
throws LoginFault;
it works fine....... i get the same error like my other mails :
....
class fr.xx.xx.webservicemi.webservice.Login nor any of its super class
is known to this context ... ... ...
.....
then i think i found a bug but i don't know if it's on Tuscany
implementation or in wsimport generation.
thanks
Gaetan