[
https://issues.apache.org/jira/browse/WODEN-204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lawrence Mandel updated WODEN-204:
----------------------------------
Component/s: Parser
Affects Version/s: M7b
> 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]