You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by keith chapman <ke...@gmail.com> on 2007/12/27 04:48:26 UTC

Fwd: [axis2] wsdl2 and inline schema

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 <h....@uni-muenster.de>
Date: Dec 24, 2007 10:34 PM
Subject: [axis2] wsdl2 and inline schema
To: axis-user@ws.apache.org


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: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org



-- 
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/

Re: Fwd: [axis2] wsdl2 and inline schema

Posted by keith chapman <ke...@gmail.com>.
Thanks John.

Thanks,
Keith.

On Jan 2, 2008 3:36 PM, John Kaputin <KA...@uk.ibm.com> wrote:

> Keith,
> I've been away over Christmas but now back at work, so I'll look into
> this.
>
> John Kaputin
>
>
> "keith chapman" <ke...@gmail.com> 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 <h.klein@uni-muenster.de >
> > Date: Dec 24, 2007 10:34 PM
> > Subject: [axis2] wsdl2 and inline schema
> > To: axis-user@ws.apache.org
> >
> >
> > 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: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> >
> > --
> > 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: woden-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: woden-dev-help@ws.apache.org
>
>
>
>
>
> 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: woden-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: woden-dev-help@ws.apache.org
>
>


-- 
Keith Chapman
Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://www.keith-chapman.org

Re: Fwd: [axis2] wsdl2 and inline schema

Posted by John Kaputin <KA...@uk.ibm.com>.
I have applied a fix to Woden trunk via WODEN-192 based on using the URL 
constructor instead of the URI.resolve() method.

John Kaputin


jpjhughes@gmail.com wrote on 03/01/2008 10:15:51:

> 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 <KA...@uk.ibm.com> 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" <ke...@gmail.com> 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 <h.klein@uni-muenster.de >
> > > Date: Dec 24, 2007 10:34 PM
> > > Subject: [axis2] wsdl2 and inline schema
> > > To: axis-user@ws.apache.org
> > >
> > >
> > > 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: axis-user-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: axis-user-help@ws.apache.org
> > >
> > >
> > >
> > > --
> > > 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: woden-dev-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: woden-dev-help@ws.apache.org
> >
> >
> >
> >
> >
> > 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: woden-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: woden-dev-help@ws.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: woden-dev-help@ws.apache.org
> 






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: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org


Re: Fwd: [axis2] wsdl2 and inline schema

Posted by Jeremy Hughes <hu...@apache.org>.
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 <KA...@uk.ibm.com> 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" <ke...@gmail.com> 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 <h.klein@uni-muenster.de >
> > Date: Dec 24, 2007 10:34 PM
> > Subject: [axis2] wsdl2 and inline schema
> > To: axis-user@ws.apache.org
> >
> >
> > 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: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> >
> > --
> > 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: woden-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: woden-dev-help@ws.apache.org
>
>
>
>
>
> 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: woden-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: woden-dev-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org


Re: Fwd: [axis2] wsdl2 and inline schema

Posted by keith chapman <ke...@gmail.com>.
Hi John,

In the case of WSDL 1.1 we set a custom resolver to WSDL4J. I managed to
tweak this custom resolver to work for the WSDL 2.0 case too. It seems to be
working now. Thanks for looking into it and pointing this out.

Thanks,
Keith.

On Jan 3, 2008 12:08 AM, John Kaputin < KAPUTIN@uk.ibm.com> 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" <ke...@gmail.com> 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 <h.klein@uni-muenster.de >
> > Date: Dec 24, 2007 10:34 PM
> > Subject: [axis2] wsdl2 and inline schema
> > To: axis-user@ws.apache.org
> >
> >
> > 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: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
> >
> > --
> > 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: woden-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: woden-dev-help@ws.apache.org
>
>
>
>
>
> 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: woden-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: woden-dev-help@ws.apache.org
>



-- 
Keith Chapman
Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://www.keith-chapman.org

Re: Fwd: [axis2] wsdl2 and inline schema

Posted by John Kaputin <KA...@uk.ibm.com>.
Keith,
I've been away over Christmas but now back at work, so I'll look into 
this.

John Kaputin


"keith chapman" <ke...@gmail.com> 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 <h.klein@uni-muenster.de > 
> Date: Dec 24, 2007 10:34 PM
> Subject: [axis2] wsdl2 and inline schema
> To: axis-user@ws.apache.org
> 
> 
> 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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
> 
> 
> 
> -- 
> 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: woden-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: woden-dev-help@ws.apache.org





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: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org


Re: Fwd: [axis2] wsdl2 and inline schema

Posted by John Kaputin <KA...@uk.ibm.com>.
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" <ke...@gmail.com> 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 <h.klein@uni-muenster.de > 
> Date: Dec 24, 2007 10:34 PM
> Subject: [axis2] wsdl2 and inline schema
> To: axis-user@ws.apache.org
> 
> 
> 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: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
> 
> 
> 
> -- 
> 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: woden-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: woden-dev-help@ws.apache.org





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