[ 
https://issues.apache.org/jira/browse/AXIS2-5072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051272#comment-13051272
 ] 

Jason Tholstrup commented on AXIS2-5072:
----------------------------------------

Andreas,

This issue reaches beyond just indexed properties though.  As you'll see below 
any setter lacking a getter will cause this exception.  The indexed property 
though seems to throw in another wrench later.  Read on for the detail. 

I went ahead and did some more quick tests here and found some interesting 
results.

Test 1) I started with a clean Entity class and removed just the 
getPostalCode() method.
Test 2) I started with a clean Entity class and removed just the 
setPostalCode(String) method.

Both produce a wsdl with a postalCode entry in the WSDL.  It will be 
interesting to see exactly how the java2Wsdl code works because it apparently 
looks at both getter and setter to determine what to put in the wsdl but for 
some reason skips when the getter has a parameter.  Weird.

Test 1 (no getter) returns the error 
         <faultstring>org.apache.axis2.AxisFault: Property 'postalCode' in bean 
class 'sample.addressbook.entry.Entry'is not readable.</faultstring>
         
Test 2 (not setter) works just fine and returns an entry that simply have a nil 
value for postalCode

> BeanUtil bombs on missing setter
> --------------------------------
>
>                 Key: AXIS2-5072
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5072
>             Project: Axis2
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.6.0
>         Environment: OSX
>            Reporter: Jason Tholstrup
>            Assignee: Sagara Gunathunga 
>              Labels: adb, beanutil
>             Fix For: 1.7.0
>
>
> First off, thanks for all your work on axis.
> I am currently upgrading from Axis2 1.3 to version 1.6  and I've run into an 
> issue.  BeanUtil bombs out on a missing setter property that is not in my 
> WSDL when building response objects on my server side code (see stack trace 
> below).  This "modifiedAttribute" property has a signature of 
> isModifiedAttribute(int index) and is not included in any wsdl yet this 
> section still throws an error.  Is there a reason elsewhere in the code where 
> it makes sense to throw an exception if a property does not have a getter and 
> a setter?  To me the appropriate decision would seem to be to ignore anything 
> that did not have both.  This seems to be the decision that my 1.3 version of 
> the code went with since I wasn't seeing this issue before.  Any thoughts 
> would be appreciated. 
> Thanks,
> Jason Tholstrup
> 14:24:32.129 ERROR [http-8080-8]  
> o.a.a.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic line:210 - 
> org.apache.axis2.AxisFault: Property 'modifiedAttribute' in bean class 
> 'com.nicusa.db.tables.Item'is not readable.
> java.lang.RuntimeException: org.apache.axis2.AxisFault: Property 
> 'modifiedAttribute' in bean class 'com.nicusa.db.tables.Item'is not readable.
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:276)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:129)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:72) 
> ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:994)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:850)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:71) 
> ~[axis2-kernel-1.6.0.jar:1.6.0]
>       at 
> org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
>  ~[axiom-api-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) 
> ~[axiom-api-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.llom.OMSerializableImpl.build(OMSerializableImpl.java:78)
>  ~[axiom-impl-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:722) 
> ~[axiom-impl-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:700) 
> ~[axiom-impl-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.llom.OMNodeImpl.setParent(OMNodeImpl.java:105) 
> ~[axiom-impl-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:296) 
> ~[axiom-impl-1.2.11.jar:1.2.11]
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:212) 
> ~[axiom-impl-1.2.11.jar:1.2.11]
>       at 
> org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:105) 
> ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:456)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:153)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>  [axis2-kernel-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
>  [axis2-kernel-1.6.0.jar:1.6.0]
>       at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) 
> [axis2-kernel-1.6.0.jar:1.6.0]
>       at 
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
>  [axis2-transport-http-1.6.0.jar:na]
>       at 
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) 
> [axis2-transport-http-1.6.0.jar:na]
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
> [servlet-api.jar:na]
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
> [servlet-api.jar:na]
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>  [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>  [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>  [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
> [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
> [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  [catalina.jar:6.0.29]
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
> [catalina.jar:6.0.29]
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
> [tomcat-coyote.jar:6.0.29]
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>  [tomcat-coyote.jar:6.0.29]
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
> [tomcat-coyote.jar:6.0.29]
>       at java.lang.Thread.run(Thread.java:680) [na:1.6.0_24]
> Caused by: org.apache.axis2.AxisFault: Property 'modifiedAttribute' in bean 
> class 'com.nicusa.db.tables.Item'is not readable.
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:189)
>  ~[axis2-adb-1.6.0.jar:1.6.0]
>       ... 35 common frames omitted

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to