[
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