You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Johan Andersson <jo...@home.se> on 2006/02/28 19:42:26 UTC

[axis2] WSDL and XML Schema Imports

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


Re: [axis2] WSDL and XML Schema Imports

Posted by Ajith Ranabahu <aj...@gmail.com>.
Hi,
does the error pop up from WSDL4J ?

On 2/28/06, Ali Sadik Kumlali <as...@yahoo.com> 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 <jo...@home.se> 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

Re: [axis2] WSDL and XML Schema Imports

Posted by Ali Sadik Kumlali <as...@yahoo.com>.
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 <jo...@home.se> 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.