[ https://issues.apache.org/jira/browse/CXF-1822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-1822. ------------------------------ Resolution: Fixed Fix Version/s: 2.2.3 2.1.6 Assignee: Daniel Kulp > WSDL Schema Imports > ------------------- > > Key: CXF-1822 > URL: https://issues.apache.org/jira/browse/CXF-1822 > Project: CXF > Issue Type: Bug > Affects Versions: 2.1.2 > Reporter: Murtaza Goga > Assignee: Daniel Kulp > Priority: Minor > Fix For: 2.1.6, 2.2.3 > > > The endpoint and the CXFServlet cannot be configured in such a way that a > client consuming a dynamically generated WSDL receives all the imported > and included schemas. > The generated WSDL only generates the schema import with the namespace > without the schemaLocation. The WSDL writer and WSDL query handler do not > render the schemaLocation value relatvie to the Servlet so that the client > consuming the WSDL can look it up. > Example configruation below: > End Configuration: > <jaxws:endpoint > id="helloWorld" > implementor="com.sandbox.service.HelloWorldImpl" > address="/HelloWorld"> > <jaxws:schemaLocations> > > <jaxws:schemaLocation>file:///D:/apps/CXFProto/schemas/domain.xsd</jaxws:schemaLocation> > </jaxws:schemaLocations> > </jaxws:endpoint> > WSDL Generated: > <wsdl:definitions name="HelloWorldImplService" > targetNamespace="http://service.sandbox.com/" > xmlns:ns1="http://cxf.apache.org/bindings/xformat" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:tns="http://service.sandbox.com/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <wsdl:types> > <xsd:schema > attributeFormDefault="unqualified" > elementFormDefault="qualified" > targetNamespace="http://service.sandbox.com/" > xmlns:cs="http://www.sandbox.com/components" > xmlns:sb="http://service.sandbox.com/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <xsd:import namespace="http://www.sandbox.com/components"/> > <xsd:include schemaLocation="fields.xsd"/> > <xsd:complexType name="domainType"> > <xsd:complexContent> > <xsd:extension base="cs:componentType"> > <xsd:sequence> > <xsd:element minOccurs="0" name="foo" type="xsd:string"/> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > > <xsd:element name="sayHi" type="sb:sayHi"/> > > <xsd:complexType name="sayHi"> > <xsd:sequence> > <xsd:element minOccurs="0" name="arg0" type="xsd:string"/> > </xsd:sequence> > </xsd:complexType> > > <xsd:element name="sayHiResponse" type="sb:sayHiResponse"/> > > <xsd:complexType name="sayHiResponse"> > <xsd:sequence> > <xsd:element minOccurs="0" name="return" type="xsd:string"/> > </xsd:sequence> > </xsd:complexType> > > </xsd:schema> > </wsdl:types> > ... > </wsdl:definitions> > The WSDL generator consumes the domain.xsd specified at the endpoint > configuration in Spring and renders it in the WSDL. However the > schemaLocation attribute does not contain the path to the components.xsd > imported. > The import should look something like this: > <xsd:import namespace="http://www.sandbox.com/components" > schemaLocation="http://localhost:8080/CXFProto/services/HelloWorldServicexsd='components.xsd' > " /> > Thus a client consuming the WSDL can lookup components.xsd. Same issue with > the xsd:include element. A configuration option to get this behavior would > be appropriate or the default behavior changed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.