[ 
https://issues.apache.org/jira/browse/TUSCANY-2558?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lou Amodeo updated TUSCANY-2558:
--------------------------------

    Attachment: calculator.zip

> Generated WSDL fails to resolve when packaged in contribution 
> --------------------------------------------------------------
>
>                 Key: TUSCANY-2558
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-2558
>             Project: Tuscany
>          Issue Type: Bug
>    Affects Versions: Java-SCA-1.3
>            Reporter: Lou Amodeo
>            Assignee: Ramkumar Ramalingam
>             Fix For: Java-SCA-Next
>
>         Attachments: calculator.CalculatorService.wsdl, calculator.zip
>
>
> I attempted to package a WSDL in a contribution that was previously generated 
> using the WSDL deployment process of binding.ws  and received a 
> ContributionException with the following cause: 
> org.apache.tuscany.sca.interfacedef.wsdl.impl.InvalidWSDLException: The fault 
> message MUST have a single part .  
> In this case I was attempting to use interface.wsdl with empty binding.ws 
> with the following SCDL: 
> <?xml version="1.0" encoding="UTF-8"?>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
>            targetNamespace="http://www.ibm.com/samples/sca/calculator";
>            name="CalculatorLocatorComposite">
>     <component name="CalculatorLocatorComponent">
>       <implementation.java class="calculator.CalculatorLocatorImpl"/>
>             <reference name="calculator" target="CalculatorComponent">
>         <interface.wsdl 
> interface="http://calculator/#wsdl.interface(CalculatorService)"/>
>         <binding.ws/>
>       </reference>
>     </component>
> </composite>
> The failure occurs during  wsdlFactory.createWSDLInterface in 
> WSDLInterfaceProcessor
> private WSDLInterface resolveWSDLInterface(WSDLInterface wsdlInterface, 
> ModelResolver resolver) throws ContributionResolveException {
>         if (wsdlInterface != null && wsdlInterface.isUnresolved()) {
>             // Resolve the WSDL interface
>             wsdlInterface = resolver.resolveModel(WSDLInterface.class, 
> wsdlInterface);
>             if (wsdlInterface.isUnresolved()) {
>                 // If the WSDL interface has never been resolved yet, do it 
> now
>                 // First, resolve the WSDL definition for the given namespace
>                 WSDLDefinition wsdlDefinition = 
> wsdlFactory.createWSDLDefinition();
>                 wsdlDefinition.setUnresolved(true);
>                 
> wsdlDefinition.setNamespace(wsdlInterface.getName().getNamespaceURI());
>                 WSDLDefinition resolved = 
> resolver.resolveModel(WSDLDefinition.class, wsdlDefinition);
>                 if (!resolved.isUnresolved()) {
>                     wsdlDefinition.setDefinition(resolved.getDefinition());
>                     wsdlDefinition.setLocation(resolved.getLocation());
>                     wsdlDefinition.setURI(resolved.getURI());
>                     
> wsdlDefinition.getImportedDefinitions().addAll(resolved.getImportedDefinitions());
>                     
> wsdlDefinition.getXmlSchemas().addAll(resolved.getXmlSchemas());
>                     wsdlDefinition.setUnresolved(false);
>                     WSDLObject<PortType> portType = 
> wsdlDefinition.getWSDLObject(PortType.class, wsdlInterface.getName());
>                     if (portType != null) {                        
>                         // Introspect the WSDL portType and add the resulting
>                         // WSDLInterface to the resolver
>                         try {
>                             
> wsdlDefinition.setDefinition(portType.getDefinition());
>                             wsdlInterface = 
> wsdlFactory.createWSDLInterface(portType.getElement(), wsdlDefinition, 
> resolver);
>                             wsdlInterface.setWsdlDefinition(wsdlDefinition);
>                             resolver.addModel(wsdlInterface);
>                         } catch (InvalidInterfaceException e) {
>                               ContributionResolveException ce = new 
> ContributionResolveException(e);
>                               error("ContributionResolveException", 
> wsdlFactory, ce);
>                             //throw ce;
>                         }                        
>                     }
>   
> I am attaching the generated WSDL.   

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