[ https://issues.apache.org/jira/browse/CXF-4594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13496950#comment-13496950 ]
Freeman Fang commented on CXF-4594: ----------------------------------- Hi Iris, I'd ask you run tests in eclipse or using mvn in command line? I also encounter that in eclipse the test pass but actually not, because when run into "assert false;" , eclipse just ignore this error. But if you set break point in WSAFromJavaTest.testAddNumbersFault(), you can see what I mean. If use mvn in command line, then what's your jdk version? my env is Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800) Maven home: /Users/ffang/apache-maven-3.0.4 Java version: 1.7.0_07, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac" I can get error like Failed tests: testAddNumbersFault(org.apache.cxf.systest.ws.addr_fromjava.WSAFromJavaTest) testAddNumbers3Fault(org.apache.cxf.systest.ws.addr_fromjava.WSAFromJavaTest) And I also get same test failure with jdk6 Freeman > Incompatible fault type is generated in the wsdl if no setter method in > Exception > --------------------------------------------------------------------------------- > > Key: CXF-4594 > URL: https://issues.apache.org/jira/browse/CXF-4594 > Project: CXF > Issue Type: Bug > Components: JAXB Databinding > Affects Versions: 2.7.0 > Reporter: iris ding > Labels: patch > Attachments: CXF-4594.patch, CXF-4594-testnew.patch, > CXF-4594-test.patch > > > with the exception class below , it only has a get*** method for the > info property. > @WebFault > public TestException extends Exception { > private String message = null; > public TestException () { > } > public TestException (String message) { > this.message = message; > } > public String getInfo() { > return message; > } > } > With the RI wsgen command, the generated schema type is : > RI: > <xs:complexType name="TestException"> > <xs:sequence> > <xs:element name="info" type="xs:string" minOccurs="0"/> > <xs:element name="message" type="xs:string" minOccurs="0"/> > </xs:sequence> > </xs:complexType> > </xs:schema> > If using CXF tool or on the CXF runtime, the generated schema type for the > exception is : > <xs:element name="TestException" type="tns:TestException"/> > <xs:complexType name="TestException"> > <xs:sequence/> > </xs:complexType> > With the JaxWS spec, 3.7 Service Specific Exception, considering that no > getFaultInfo or faultBean in WebFault annotation is provided, the > special algorithm will be used to map the exception to jaxb bean, one of > the steps write below: > For each getter in the exception and its superclasses, a property of the > same type and name is added to > the bean. All the getter methods except > getMessagefromjava.lang.Throwabletype hierarchy > are excluded from the list of getters to be mapped. > Seems that only getter method is required, with the current codes in static > boolean JAXBContextInitializer.isMethodAccepted, it will check whether the > setter exists. I am thinking that this is not required for this scenario, > as we only need to read the information from the user exception. > The patch will return true is the getter method has no corresponding setter > method to let CXF comply with the jax-ws 2.2 spec: > For each getter in the exception and its superclasses, a property of the > same type and name is added to > the bean. All the getter methods except > getMessagefromjava.lang.Throwabletype hierarchy > are excluded from the list of getters to be mapped. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira