Hi John, definitely looks like you fixed a bug with Woden, so +1 for
committing it. I think you're saying that if genelist.xsd were to
import a relatively-addressed schema itself then XmlSchema wouldn't
find it. If so lets open an XmlShema JIRA.

Keith, looks like you've fixed / worked around the problem in Axis2. I
think we should fix the underlying problems too - then the Axis2 code
can be cleaner.

Cheers,
Jeremy

On 02/01/2008, John Kaputin <[EMAIL PROTECTED]> wrote:
> Keith,
> the SchemaResolverAdapter in Woden is based on the
> DefaultURIResolver.resolveEntity() method in XmlSchema. It just adds some
> calls to Woden's SimpleURIResolver which check if the baseURI or
> schemaLocation are mapped to other URIs in a catalog file.  This code will
> work with WSDL and XSD files packaged in jar files provided that the
> catalog file and catalog system properties have been configured correctly,
> as described in the Woden User Guide [1].
>
> For example, by creating a catalog file called test.catalog containing the
> entry:
> genelist.xsd=META-INF/genelist.xsd
>
> and then:
> System.setProperty("org.apache.woden.resolver.simpleresolver.catalog","file:///c:/temp2/test.catalog");
> System.setProperty("org.apache.woden.resolver.simpleresolver.baseURIs","jar:file:///C:/temp2/test.jar!/");
> WSDLReader reader = factory.newWSDLReader();
>
> But setting Woden properties in this way is not that convenient for an
> Axis2 user - we have a JIRA open to address this.
>
> However, I can get URIs to work in Woden with jar files without setting up
> a catalog by changing the way SchemaResolverAdapter resolves the baseURI
> and the schemaLocation. Instead of using the File object, I use the URL
> constructor URL(contextURL, schemaLocString).  contextURL is created from
> the baseURI string. I use this ctor via the StringUtils.getURL() method
> which also handles the case where schemaLocation is a file path such as
> "C:\temp\genelist.xsd", which would cause a MalformedURLException with
> this URL ctor.
>
> So:
> if baseURI = "jar:file:///C:/temp2/test.jar!/META-INF/lgws.wsdl"
> and schemaLocation = "genelist.xsd"
> the resolved uri = "jar:file:///C:/temp2/test.jar!/META-INF/genelist.xsd"
> ...without the need to setup any catalog.
>
> I can commit this change to Woden's SchemaResolverAdapter, but it seems to
> me that this type of behaviour (using the URL ctor instead of the File
> object) should also be the behaviour of XmlSchema's
> DefaultURLResolver.resolveEntity() method. If XmlSchema is use mainly by
> Axis2 and Axis2 deploys WSDL and XSD files packaged inside .aar files,
> then why not have default behaviour that handles jar file paths as well as
> ordinary file and web URIs. What do you think? Do you have the same
> problem with WSDL 1.1 and WSDL4J in Axis2 or do you use the schema DOM
> tree exposed by WSDL4J to traverse those schemas?
>
> [1] http://ws.apache.org/woden/userguide.html#Woden+URI+Resolver
>
>
>
> regards,
> John Kaputin
>
>
> "keith chapman" <[EMAIL PROTECTED]> wrote on 27/12/2007 03:48:26:
>
> > Hi Woden Devs,
> >
> > There seems to be a problem in the schema resolver
> > (SchemaResolverAdapter) when the jar URL scheme is used. As most of
> > you know Axis2 packs all service specific files in a .aar file with
> > the WSDL and the associated schema files in the META-INF directory.
> > The following is an example of this senario and woden fails to
> > resolve the URI. I tried debugging through this, line 145 of the
> > SchemaResolverAdapter class resolves the URL as return new
> > URI(baseUri).resolve(new URI(schemaLocation)); Debugging the
> > scenario below had the baseUri as jar:file://file:/opt/apache-
> > tomcat-6.0.10/webapps/axis2/WEB-INF/services/lgws.aar!/META-
> > INF/lgws.wsdl and schemaLocation as genelist.xsd. But this resolves
> > to /opt/apache-tomcat-6.0.10/webapps/axis2/WEB-
> > INF/services/genelist.xsd. Is this an issue with the resolver class
> > when the jar URL scheme is used?
> >
> > Thanks,
> > Keith.
>
> > ---------- Forwarded message ----------
> > From: Hans-Ulrich Klein <[EMAIL PROTECTED] >
> > Date: Dec 24, 2007 10:34 PM
> > Subject: [axis2] wsdl2 and inline schema
> > To: [EMAIL PROTECTED]
> >
> >
> > Hi List,
> >
> > I have some path problems when deploying my service. My attached
> > wsdl2-File (lgws.wsdl) includes a schema (genelist.xsd). Both are
> > located in the same local folder. I tried the following:
> >
> > $  /opt/axis2-SNAPSHOT/bin/wsdl2java.sh -uri src/META-INF/lgws.wsdl -p
> > de.wwu.imib.lgws.service -d adb -s -ss -sd -wv 2.0 -ns2p
> > http://imib.uni-muenster.de/lgws/xml=de.wwu.imib.lgws.service.xml
> >
> > and
> >
> > $  ant jar.server
> >
> > This works fine so far. Though, copying the resulting lgws.aar to the
> > axis2 services folder to deploy it leads to this error message:
> >
> > Woden[Error],0:0,WSDL521,Could not parse an inline schema in the WSDL at
>
> > URL
> > "jar:file://file:/opt/apache-tomcat-6.0.10/webapps/axis2/WEB-
> > INF/services/lgws.aar!/META-INF/lgws.wsdl".,java.lang.
> > RuntimeException:org.apache.ws.commons.schema.XmlSchemaException:
> >
> > /opt/apache- tomcat-6.0.10/webapps/axis2/WEB-INF/services/genelist.xsd
> > (No such file or directory)
> > Woden[Error],0:0,Endpoint-1061,The address 'lgws' specified for this
> > endpoint is not an absolute IRI. The address must be absolute.
> > [INFO] Trouble processing wsdl file :null
> > [INFO] Deploying Web service: lgws.aar -
> > file:/opt/apache-tomcat-6.0.10/webapps/axis2/WEB-INF/services/lgws.aar
> >
> > Obviously, the path to the genelist.xsd is wrong. What is the right path
>
> > and where can I change it? The xsd-file is packed in the lgws.aar:
> >
> > $  unzip lgws.aar
> > ...
> >  inflating: META-INF/genelist.xsd
> >  inflating: META-INF/lgws.wsdl
> >  inflating: META-INF/services.xml
> > ...
> >
> > I spend a whole day for this problem without success :( I tried it with
> > axis2-1.4 and also with a nightly build.
> >
> > Thank you very much in advance,
> > Hans-Ulrich
> >
> >
> > <schema xmlns=" http://www.w3.org/2001/XMLSchema";
> >        xmlns:lgs="http://imib.uni-muenster.de/lgws/xml "
> >        targetNamespace="http://imib.uni-muenster.de/lgws/xml";
> >        elementFormDefault="qualified"
> >        attributeFormDefault="qualified">
> >
> >        <element name="genelist" type="lgs:GenelistType"/>
> >
> >        <complexType name="GenelistType">
> >        <sequence>
> >                <element name="id" type="int"/>
> >                <element name="name" type="string"/>
> >                <element name="description" type="string"/>
> >                <element name="pubmed" type="int"/>
> >
> >                <element name="group" type="lgs:GroupType"
> > minOccurs="1" maxOccurs="unbounded"/>
> >                <element name="microarray" type="lgs:MicroarrayType"/>
> >                <element name="listEntry" type="lgs:ListEntryType"
> > minOccurs="1" maxOccurs="unbounded"/>
> >        </sequence>
> >        </complexType>
> >
> >    <complexType name="GroupType">
> >        <sequence>
> >                <element name="id" type="int"/>
> >                <element name="name" type="string"/>
> >                <element name="description" type="string"/>
> >                <element name="ageGroup" type="string"/>
> >                <element name="material" type="string"/>
> >                <element name="leukemia" type="string"/>
> >                <element name="size" type="int"/>
> >        </sequence>
> >    </complexType>
> >
> >    <complexType name="MicroarrayType">
> >        <sequence>
> >                <element name="name" type="string"/>
> >                <element name="description" type="string"/>
> >                <element name="manufacturer" type="string"/>
> >                <element name="numberFeatures" type="int"/>
> >        </sequence>
> >    </complexType>
> >
> >    <complexType name="ListEntryType">
> >        <sequence>
> >                <element name="accessionNumber" type="string"
> > minOccurs="1" maxOccurs="1"/>
> >                <element name="geneSymbol" type="string"
> > nillable="true" minOccurs="1" maxOccurs="1"/>
> >                <element name="rank" type="int" minOccurs="0"
> maxOccurs="1"/>
> >                <element name="upregulatedGroup" type="int"
> > minOccurs="0" maxOccurs="1"/>
> >                <element name="featureId" type="string" minOccurs="0"
> > maxOccurs="1"/>
> >        </sequence>
> >    </complexType>
> >
> > </schema>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> > --
> > Keith Chapman
> > WSO2 Inc.
> > Oxygen for Web Services Developers.
> > http://wso2.org/ [attachment "lgws.wsdl" deleted by John Kaputin/UK/IBM]
>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

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

Reply via email to