[ https://issues.apache.org/jira/browse/AXIS2-3723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wicus Ross updated AXIS2-3723: ------------------------------ Attachment: 20080522_00.diff We have tracked down the cause relating to the reported issue. It would seem that JAXB is not following the JavaBean specification. The following link, http://www.mojavelinux.com/blog/archives/2006/09/the_great_jaxb_api_blunder/, describes our situation. From the aforementioned URL you can follow https://jaxb.dev.java.net/issues/show_bug.cgi?id=131 for more details. We will start in module ADB, which is the closest to the issue. Specifically method org.apache.axis2.databinding.utils.BeanUtil.getPullParser(...) +-line 128. The line reads as follows: BeanInfo beanInfo = Introspector.getBeanInfo(beanObject.getClass()); If you debug from here you will eventually hit the point of interest, java.beans.Introspector.getTargetProperty(...). Lines 537 through 567 (JDK6_04) is the focus point. Evidently the PropertyDescriptor (pd) readMethod (isXxx) will not be set if the resultType is of type java.lang.Boolean (lines 549 - 552, JDK6_04). To address the issue we made a small modification to method org.apache.axis2.databinding.utils.BeanUtil.getPullParser(...). Please find attached diff (20080522_00.diff). > AXIS2 is not aware of "is" methods when generating soap messages from JAXB > java beans > ------------------------------------------------------------------------------------- > > Key: AXIS2-3723 > URL: https://issues.apache.org/jira/browse/AXIS2-3723 > Project: Axis 2.0 (Axis2) > Issue Type: Bug > Components: databinding > Affects Versions: nightly > Environment: Win XP Pro, JDK 6_04, Tomcat 5.5.26, JAXB 2.1.6 > Reporter: Glen Verran > Priority: Blocker > Fix For: nightly > > Attachments: 20080522_00.diff > > > I have an XSD which contains an element of type xs:boolean. This element is > called "redirect". I use JAXB 2.1.6 to generate the java beans from the XSD. > The methods for the "redirect" variable in the java bean are isRedirect and > setRedirect. > I created a web service with the method below: > public RetrieveConfigurationDataResponse > retrieveConfigurationData(RetrieveConfigurationDataRequest req) { > RetrieveConfigurationDataResponse rsp = new > RetrieveConfigurationDataResponse(); > rsp.setData("1234"); > rsp.setDataEncodingType(req.getDataEncodingType()); > rsp.setEchoData(req.getEchoData()); > rsp.setIdentifier(req.getIdentifier()); > rsp.setIdentifierType(req.getIdentifierType()); > rsp.setRedirect(Boolean.FALSE); > rsp.setResponseCode("00"); > rsp.setRevision(req.getRevision()); > return rsp; > } > Both the (RetrieveConfigurationDataRequest and > RetrieveConfigurationDataResponse are JAXB generated java beans. The > RetrieveConfigurationDataResponse class is the one that contains this > redirect variable. I generated the client code and went on to test this > method to the web service. > I got the following AxisFault saying that it could not find the read method > for "redirect". > Exception in thread "main" org.apache.axis2.AxisFault: > org.apache.axis2.AxisFault: can not find read method for : redirect > at > org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:486) > at > org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:343) > at > org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389) > at > org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211) > at > org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) > at > com.traderoot.webservices.configurationdistribwebservice.ConfigurationDistribWebServiceStub.retrieveConfigurationData(ConfigurationDistribWebServiceStub.java:172) > at Test.main(Test.java:23) > To confirm my assumptions, I went into the JAXB code and changed the > isRedirect method to getRedirect. This fault did not occure. > I do not consider this a workaround since JAXB classes are to be untouched. > It seems that AXIS2 is not looking for "is" methods when binding the java > bean. > This is an absoluate blocker and prevents us from being able to use AXIS2. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]