[ 
https://issues.apache.org/jira/browse/CXF-1272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12579939#action_12579939
 ] 

Daniel Kulp commented on CXF-1272:
----------------------------------


OK.   I found one of our system tests that has the same issue.

It's actually a "bug" in spring.  :-(    The entity resolver in spring will 
actually only resolve schemas if the URL/systemId ends in ".xsd", which the 
wsdl one does not.   We work around this when we specifically create an 
ApplicationContext/XmlBeanDefinitionReader by explicitly setting a new 
EntityResolver on the XmlBeanDefinitionReader that DOES properly resolve 
schemas.   That's why it works for our cases as we generally create the 
contexts ourselves.

However, if you use plain spring API's  (and I think the CXFServlet does do 
this, but the tests don't hit this issue), you get the default entity resolver 
which is just plain broken.

Now that I understand what is happening, time to find a good fix.   :-)



> Application doesn't start up without internet connection (when providing 
> <http-conf:conduit> setting)
> -----------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1272
>                 URL: https://issues.apache.org/jira/browse/CXF-1272
>             Project: CXF
>          Issue Type: Improvement
>          Components: Configuration
>    Affects Versions: 2.0.3
>         Environment: IBM WebSphere 6.1 Java5
> Also reproduced when building with maven2
>            Reporter: Allard Buijze
>             Fix For: 2.0.5
>
>
> When the spring context contains the <http-conf:conduit> tag, additional CXF 
> xsd files are parsed. Some of these XSD's rely on the WSDL schema definitions 
> found online. However, the XSD is also included in the jar 
> (schemas/wsdl/wsdl.xsd).
> When the application starts up without an internet connection, it will fail 
> because it cannot find the wsdlExtensibiityElement definition.
> I have modified the xsd to load 
> [schemaLocation="classpath:schemas/wsdl/wsdl.xsd"]. Now, the application 
> starts up fine without internet connection.
> The file I have modified are:
> * /schemas/wsdl/http.xsd
> * /schemas/wsdl/http-conf.xsd
> * /schemas/wsdl/jms.xsd
> * /schemas/wsdl/xml-binding.xsd
> In all these files, I have removed:
>       <import namespace = "http://schemas.xmlsoap.org/wsdl/"; 
> schemaLocation="http://schemas.xmlsoap.org/wsdl/"/>
> and added
>       <import namespace = "http://schemas.xmlsoap.org/wsdl/"; 
> schemaLocation="classpath:/schemas/wsdl/wsdl.xsd"/>
> Perhaps there are other setting requiring external files, but we haven't come 
> across any so far.
> ----
> Background info:
> Our web services are running in a highly protected environment. This means 
> that all firewalls are closed, except for a few ports that are needed to 
> communicate with our service providers. This means that we do not 
> automatically have access to all IP's from our servers.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to