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

Thomas Papke edited comment on CXF-8005 at 5/15/19 6:31 AM:
------------------------------------------------------------

Thank you Colm, i think your change will fix my issue. 

Just for documentation some more background details: I use CXF STS service and 
I get the following stacktrace during startup with CXF 3.3.1:

{code}
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed 
to create service.
        at 
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:169)
        at 
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:408)
        at 
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:528)
        at 
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:168)
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:460)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:338)
        ... 58 more
Caused by: org.apache.ws.commons.schema.XmlSchemaException: External DTD: 
Failed to read external DTD 'XMLSchema.dtd', because 'file' access is not 
allowed due to restriction set by the accessExternalDTD property.
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:722)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:705)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1515)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658)
        at 
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:156)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:508)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:716)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:705)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1515)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658)
        at 
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:156)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:508)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:716)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:705)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1515)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:550)
        at 
org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection.java:129)
        at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:141)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:74)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:66)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:61)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:378)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:345)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:209)
        at 
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:161)
        ... 67 more
{code}

As a workaround i have just reconfigure my catalog to point to a local copy of 
xml.xsd. I assume if your fix is releases, i can remove this and swith back to 
{code}
<system systemId="http://www.w3.org/2001/xml.xsd"; 
uri="classpath:/schemas/xml.xsd" />
{code}



was (Author: thopap):
Thank you Colm, i think your change will fix my issue. 

Just for documentation some more background details: I use CXF STS service and 
I get the following stacktrace during startup with CXF 3.3.1:

{code}
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed 
to create service.
        at 
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:169)
        at 
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:408)
        at 
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:528)
        at 
org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:168)
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:460)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:338)
        ... 58 more
Caused by: org.apache.ws.commons.schema.XmlSchemaException: External DTD: 
Failed to read external DTD 'XMLSchema.dtd', because 'file' access is not 
allowed due to restriction set by the accessExternalDTD property.
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:722)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:705)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1515)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658)
        at 
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:156)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:508)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:716)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:705)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1515)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658)
        at 
org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:156)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:508)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:716)
        at 
org.apache.ws.commons.schema.SchemaBuilder.resolveXmlSchema(SchemaBuilder.java:705)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleImport(SchemaBuilder.java:538)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1515)
        at 
org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:658)
        at 
org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:550)
        at 
org.apache.cxf.common.xmlschema.SchemaCollection.read(SchemaCollection.java:129)
        at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:141)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:74)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:66)
        at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:61)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:378)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:345)
        at 
org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:209)
        at 
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:161)
        ... 67 more
{code}

As a workaround i have just reconfigure my catalog to point to a local copy of 
xml.xsd. I assume if your fix is releases, i can remove this and swith back to 
{{ <system systemId="http://www.w3.org/2001/xml.xsd"; 
uri="classpath:/schemas/xml.xsd" />}}

> cxf-codegen-plugin - External DTD: Failed to read external DTD ‘.dtd’
> ---------------------------------------------------------------------
>
>                 Key: CXF-8005
>                 URL: https://issues.apache.org/jira/browse/CXF-8005
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Tsvetoslav
>            Assignee: Colm O hEigeartaigh
>            Priority: Blocker
>         Attachments: wsdl.zip, xmldsig-core-schema.xsd
>
>
> Hello,
>  
> First I would like to mention that I'm using "Spring Boot CXF JAX-WS Starter" 
> for developing my web service. When I'd migrated my project dependencies to 
> the latest version - Apache-cxf(3.3.1) and Spring boot(2.1.3.RELEASE), the 
> Maven build system started to give me during the build this blocking error 
> "_Execution generate-sources of goal 
> org.apache.cxf:cxf-codegen-plugin:3.3.1:wsdl2java failed: 
> org.apache.ws.commons.schema.XmlSchemaException: External DTD: Failed to read 
> external DTD 'XMLSchema.dtd', because 'http' access is not allowed due to 
> restriction set by the accessExternalDTD property._" I've returned back to 
> the older/current version of dependencies Apache-cxf(3.2.7) and Spring 
> boot(1.5.17.RELEASE), the error has gone.
>  
> I've found a solution 
> [stackoverflow|[https://stackoverflow.com/a/23012746/7357959]] which I don't 
> prefer because it's applied directly in the jre and I need to look after it 
> when I create a new environment.
>  
> Based on your official 
> documentation[maven-cxf-codegen-plugin|[http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html]],
>  section "Other configuration options", I can apply the same configuration to 
> my JVM using cxf-codegen-plugin. I tried out this configuration:
> {code:java}
> <plugin>
>      <groupId>org.apache.cxf</groupId>
>      <artifactId>cxf-codegen-plugin</artifactId>
>      <version>${cxf.version}</version>
>      <configuration>
>          
> <additionalJvmArgs>-Djavax.xml.accessExternalDTD=all</additionalJvmArgs>
>      </configuration>
>      ......................{code}
> based on this example [External 
> DTD|https://programtalk.com/java/external-dtd-failed-restriction-accessexternaldtd/]
>  but unfortunately it doesn't work
> I will appreciate if somebody can take a look at the problem.
> Thank you in advance!
>  
> P.S. I tried different configuration option like:
>  
> {code:java}
> <configuration>
>     <fork>once</fork>
>     <additionalJvmArgs>-Djavax.xml.accessExternalDTD=all</additionalJvmArgs>
>     
> <additionalJvmArgs>-Djavax.xml.accessExternalSchema=all</additionalJvmArgs>
>  </configuration>{code}
>  
> ----
>  
> {code:java}
> <configuration>
>     <additionalJvmArgs>-Djavax.xml.accessExternalDTD=all</additionalJvmArgs>
>     
> <additionalJvmArgs>-Djavax.xml.accessExternalSchema=all</additionalJvmArgs>
>  </configuration>
> {code}
> but unfortunately neither of them was working
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to