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

Lawrence Mandel resolved WODEN-204.
-----------------------------------

    Resolution: Invalid

I'm resolving this issue as invalid because as far as I can tell this is not a 
Woden issue. An issue should likely be created against Axis2. Feel free to 
reopen if you have more information.

> Schema resolving issue in Axis2
> -------------------------------
>
>                 Key: WODEN-204
>                 URL: https://issues.apache.org/jira/browse/WODEN-204
>             Project: Woden
>          Issue Type: Test
>          Components: Parser
>    Affects Versions: M7b
>            Reporter: Keith Godwin Chapman
>            Assignee: Lawrence Mandel
>         Attachments: calculatorImportSchema.wsdl, calculatorImportSchema.xsd, 
> Test.java
>
>
> Hi all,
> This is regarding http://issues.apache.org/jira/browse/AXIS2-3379. I
> have attached both the WSDL and the schema for this scenario. The WSDL
> is available at
> http://localhost:8080/axis2/services/calculatorImportSchema?wsdl2 and
> the schema is available at
> http://localhost:8080/axis2/services/calculatorImportSchema?xsd=xsd0.xsd.
> It looks like a problems occurs because the schema import. I set
> http://localhost:8080/axis2/services/calculatorImportSchema?wsdl2 as the
> baseURI hence this should resolve to the correct schemaLocation where
> the schema is located at. However  I do get an error when I try to
> perform the following operation, here messageReference is an
> InterfaceMessageReference.
> String messageContentModelName = messageReference.getMessageCont
> entModel();
>        QName elementQName = null;
>        if
> (WSDL2Constants.NMTOKEN_ELEMENT.equals(messageContentModelName)) {
>            ElementDeclaration elementDeclaration =
> messageReference.getElementDeclaration();
>            if (elementDeclaration == null) {
>                InterfaceMessageReferenceElement messageReferenceElement =
>                        messageReference.toElement();
>                QName qName =
> messageReferenceElement.getElement().getQName();
>                throw new AxisFault("Unable to find element " +
> qName.toString() + " reffered to by operation " +
> axisOperation.getName().getLocalPart());
>            }
>            elementQName = elementDeclaration.getName();
>        } else if
> (WSDL2Constants.NMTOKEN_ANY.equals(messageContentModelName)) {
>            elementQName = Constants.XSD_ANY;
>        }
> When the above is performed I get a AxisFault because the
> elementDeclaration is null. And Axis2 fails saying
> org.apache.axis2.AxisFault: org.apache.axis2.AxisFault: Unable to find
> element {http://charitha.org/}addition reffered to by operation addition
> This is clearly a problem with schema resolving. I'm not sure weather
> this is a woden bug or an issue in the way axis2 reads the WSDL. Here is
> the code we use to read the WSDL,
> private Description readInTheWSDLFile(String wsdlURI) throws
> WSDLException, AxisFault {
>        DocumentBuilderFactory documentBuilderFactory =
> DocumentBuilderFactory
>                .newInstance();
>        documentBuilderFactory.setNamespaceAware(true);
>        DocumentBuilder documentBuilder;
>        Document document;
>        try {
>            documentBuilder = documentBuilderFactory.newDocumentBuilder();
>            document = documentBuilder.parse(wsdlURI);
>        } catch (ParserConfigurationException e) {
>            throw AxisFault.makeFault(e);
>        } catch (IOException e) {
>            throw AxisFault.makeFault(e);
>        } catch (SAXException e) {
>            throw AxisFault.makeFault(e);
>        }
>        return readInTheWSDLFile(document);
>    }
> private Description readInTheWSDLFile(Document document) throws
> WSDLException {
>        WSDLReader reader = DOMWSDLFactory.newInstance().newWSDLReader();
>        if (customWSDLResolver != null) {
>            reader.setURIResolver(customWSDLResolver);
>        }
>        // This turns on WSDL validation which is set off by default.
>        reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
>        WSDLSource wsdlSource = reader.createWSDLSource();
>        wsdlSource.setSource(document.getDocumentElement());
>        if (getBaseUri() != null && !"".equals(getBaseUri())) {
>            try {
>                wsdlSource.setBaseURI(new URI(getBaseUri()));
>            } catch (URISyntaxException e) {
>                AxisFault.makeFault(e);
>            }
>        }
>        if (log.isDebugEnabled()) {
>            log.debug("Reading 2.0 WSDL with wsdl uri = " + wsdlURI);
>            log.debug("  the stack at this point is: " + stackToString());
>        }
>        return reader.readWSDL(wsdlSource);
>    }
> Your help in this regard is appreciated.
> Thanks,
> Keith.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to