cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timo Hosters <thost...@orga-systems.com>
Subject Question: CXF 'generate Web Service'-issue when using "xsd:redefine"
Date Fri, 25 Jul 2014 11:27:11 GMT
Hi all. Another question:	
The context
	
		I have some WSDL/XSD-files defining messages/payload			(let's say
something like "Person").
 I must not change said files;			instead I extend the messages in an
additional XSD-file (to have something like "Person with			dog").
 Extension is done via *XSD-redefinitions*, e. g.:		
...&lt;xs:redefine schemaLocation="./WSPayloadMessages.xsd"&gt; 
&lt;xs:complexType name="PersonType"&gt;    &lt;xs:complexContent&gt;    

&lt;xs:extension base="tns:PersonType"&gt;        &lt;xs:sequence&gt;    
    
&lt;xs:element name="Dog" type="animals:DogType"/&gt;       
&lt;/xs:sequence&gt;      &lt;/xs:extension&gt;   
&lt;/xs:complexContent&gt;  &lt;/xs:complexType&gt;&lt;/xs:redefine&gt;...
		
Then I hand the redefinitions over to a XJC (executed by Maven) to obtain
Java			classes.
	
	
The error
	
		Once I call CXF's "java2WS" via Maven to *generate* my own 			*Web
Services* using the extended messages, it *fails*:		
Error: java.lang.RuntimeException: java.lang.IllegalArgumentException:
*argument contains null*java.lang.RuntimeException:
java.lang.IllegalArgumentException: argument contains null	at
org.apache.cxf.frontend.AbstractServiceFactory.createService(AbstractServiceFactory.java:80)
at
org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:101)
at
org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:110)
at
org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75)
...
	
	
My guess
	
		Doing some research, I concluded that CXF/JAXB has issues with			the
aforementioned extension mechanism. It leads to superclasses			prefixed with
"Original". However their "@XmlType"-annotations always			have an empty
"name"-attribute (i. e. "*@XmlType(name = ""*, ...)").			This apparently
cause the "argument contains null"-error.		
To illustrate, let's stay with the "person with dog" example:
		
@XmlType(name = "", propOrder = {    "statusCode"})@XmlSeeAlso({   
my.package.PersonType.class})@Generated(value = "com.sun.tools.xjc.Driver",
date = "2014-07-25T11:15:09+02:00", comments = "JAXB RI v2.2.7")public class
OriginalPersonType{ 	... }
		
For testing, I manually removed the empty "name"-attribute ->			the error is
gone. However I cannot do that all the time, for my			projects uses Maven
and builds automatically.
		
How can I fix that? Or is it a bug (for it seems to work			without the
"name"-attribute)? If it is a bug, I could file a			bug-report.
	
My current configuration
		
I'm using:
		
		
CXF 3.0.0		
Maven (from within	Eclipse)
with the plugins: 
maven-jaxb2-plugin : 0.9.0
jaxb2-basics : 0.6.5
cxf-java2ws-plugin : 3.0.0
		
Tomcat 7.0.54		
Any hints are welcome. I could also provide further details (like my POM for
Maven).




--
View this message in context: http://cxf.547215.n5.nabble.com/Question-CXF-generate-Web-Service-issue-when-using-xsd-redefine-tp5746898.html
Sent from the cxf-user mailing list archive at Nabble.com.

Mime
View raw message