I guess so - it is better to record these issues anyway On 3/7/06, Johan Andersson <[EMAIL PROTECTED]> wrote: > Hello, > > Should I log a JIRA for this? > > Best Regards, > Johan Andersson > > -----Original Message----- > From: "Johan Andersson" <[EMAIL PROTECTED]> > To: [email protected] > Date: Wed, 01 Mar 2006 10:48:44 +0100 > Subject: Re: [axis2] WSDL and XML Schema Imports > > Hello Ajith, thank you for responding =) > > WSDL4J picks up the relative path just fine. > The problem is that a relative file path in a application server environment > is not predictable. > > Consider this (I use tomcat as example): > If I start Tomcat from c:\tomcat\bin and then in a servlet (located in say > "c:\tomcat\webapps\axis2") execute the code "new > File("../schemas/someschema.xsd").toURL();" I will get > "file:/C:/tomcat/bin/../schemas/someschema.xsd" > > Looking at the WSDL4J source (not sure if I'm looking at the right version > though) and judging by the error message I get it seems that this is what > happens when Axis2 parses my wsdl. > > As the base URI in this case is not predictable (depends on the servlet > container/application server and how it is started) I have no chance to place > the schemas in a location that they will get picked up by WSDL4J unless I can > somehow specify this location. > > The relative path must work both for WSDL4J parsing the wsdl server-side in > Axis2 and publicly for a consumer of my webservice (relative to the ?wsdl > url). > > I would not mind having to duplicate the schema files (two locations) as long > as they are all located inside my webapp folders. > > Perhaps this could be solved by axis2 specifying a base URI for relative > imports? > > Best Regards, > Johan Andersson > > -----Original Message----- > From: "Ajith Ranabahu" <[EMAIL PROTECTED]> > To: [email protected] > Date: Wed, 1 Mar 2006 02:47:54 -0600 > Subject: Re: [axis2] WSDL and XML Schema Imports > > Hi, > Hmmm.. WSDL4J has a method that allows it to use a given base uri but > I'm not sure whether this is the problem. I mean wsdl4j is perfectly > capable of picking up schemas from relative uri's. > I'll try to test this scenario in a test case and let you know. > > Ajith > > On 3/1/06, Johan Andersson <[EMAIL PROTECTED]> wrote: > > Ajith: > > > > Yes, it seems that WSDL4J is used to parse the wsdl serverside after I have > > deployed my service. > > > > The exception originates from: > > com.ibm.wsdl.util.StringUtils.getContentAsInputStream > > > > If I could register a EntityResolver or simply specify a directory where > > WSDL4J should look for the imported schemas so I could use a relative > > schemaLocation it would solve my problem. > > > > Yet another possible solution would be for Axis2 to give me a chance to > > modify the WSDL on the fly _before_ parsing it serverside. > > > > Ali: The problem is that the host is not known when I write or rather > > generate my wsdl so I cannot include the hostname in the schemaLocation so > > no complete URL is possible. > > > > Best Regards, > > Johan Andersson > > > > > > > > -----Original Message----- > > From: "Ajith Ranabahu" <[EMAIL PROTECTED]> > > To: [email protected] > > Date: Tue, 28 Feb 2006 22:12:54 -0600 > > Subject: Re: [axis2] WSDL and XML Schema Imports > > > > Hi, > > does the error pop up from WSDL4J ? > > > > On 2/28/06, Ali Sadik Kumlali <[EMAIL PROTECTED]> wrote: > > > Hi Johan, > > > > > > I am not sure if it's a solution to your problem but I use real URL in > > > schemaLocation to get rid of this kind of problems. What I do is defining > > > my > > > target URL in hosts file that maps to localhost. And also, I use Apache > > > Web > > > Server or IIS to host the localhost. For example, assuming you need to > > > make > > > following definition: > > > > > > schemaLocation="http://my.company.com/schemas/myschema.xsd" > > > > > > I offer you to do the following: > > > > > > 1) Add an entry to the "hosts" file: > > > > > > my.company.com localhost > > > > > > "hosts" file resides under > > > c:\WINDOWS\system32\drivers\etc\ in my Windows XP > > > > > > 2) Install Apache Web Server or IIS. I use Apache. > > > > > > 3) Create the "schemas" folder under htdocs folder of Apache. IIS must > > > have > > > its own directory structure. > > > > > > 4) Put the "myschema.xsd" file under "schemas" folder > > > > > > 5) When you call > > > http://my.company.com/schemas/myschema.xsd URL with your > > > browser, it must be there! > > > > > > Good luck, > > > > > > Ali Sadik Kumlali > > > > > > > > > Johan Andersson <[EMAIL PROTECTED]> wrote: > > > > > > Hello, > > > > > > I'm struggling with schema imports in my wsdl files and would like some > > > hints for how to proceed. > > > > > > The hostname of the target web server/servlet container is not known at > > > the > > > time I create my wsdl so I am trying to use a relative schemaLocation > > > in my import: > > > <xsd:import namespace="http://my.domain.com/common/stuff" > > > schemaLocation="../schemas/myschema.xsd" /> > > > > > > When I deploy my service, Axis2 will parse this wsdl and try to resolve > > > the > > > location of the schema as a file and fail because the "current directory" > > > is > > > not anywhere near the webapp folder. > > > > > > If I give the full URL to the imported schema > > > (http://myhost:port/axis2/schemas/myschema.xsd) it works > > > like a charm but as I said the hostname is not known at the time I create > > > the wsdl so this is not an option. > > > > > > Is there any way to hook in an Entity Resolver, set some kind of property > > > to > > > get the wsdl4j to load schemas of the classpath or even disabling parsing > > > of > > > the wsdl:types so I can get this to work please let me know. > > > > > > Best Regards > > > Johan Andersson > > > > > > > > > > > > > > > ________________________________ > > > Yahoo! Mail > > > Bring photos to life! New PhotoMail makes sharing a breeze. > > > > > > > > > > > > -- > > Ajith Ranabahu > > > > > > > > > > > -- > Ajith Ranabahu > > > > > > >
-- Ajith Ranabahu
