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

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

Sure.  Take the pojo example in the sample dir.  Go to the Entry.java file at 
/samples/pojo/src/sample/addressbook/entry.

Now change the get postalCode method

from

    public String getPostalCode() {
        return postalCode;
    }

to


    public String getPostalCode(int ohCrap) {
        return postalCode;
    } 


Now build and deploy the service.  If you look at the wsdl you'll note that 
postalCode was not put into the entry definition which is what I would expect 
to see since there is no parameterless getter.

Add an entry with whatever client (I'm using soap ui) and lets say you use the 
name "hi".  

Request 1 addEntry
 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ser="http://service.addressbook.sample"; 
xmlns:xsd="http://entry.addressbook.sample/xsd";>
   <soapenv:Header/>
   <soapenv:Body>
      <ser:addEntry>
         <!--Optional:-->
         <ser:args0>
            <!--Optional:-->
            <xsd:city>kc</xsd:city>
            <!--Optional:-->
            <xsd:name>hi</xsd:name>
            <!--Optional:-->
            <xsd:state>mo</xsd:state>
            <!--Optional:-->
            <xsd:street>that one</xsd:street>
         </ser:args0>
      </ser:addEntry>
   </soapenv:Body>
</soapenv:Envelope>

Returns ok (no return payload).

Now go and retrieve that entry by passing in the name "hi" to the findEntry 
method on the service.

Request 2 findEntry
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:ser="http://service.addressbook.sample";>
   <soapenv:Header/>
   <soapenv:Body>
      <ser:findEntry>
         <!--Optional:-->
         <ser:args0>hi</ser:args0>
      </ser:findEntry>
   </soapenv:Body>
</soapenv:Envelope>

Response to findEntry
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Server</faultcode>
         <faultstring>org.apache.axis2.AxisFault: Property 'postalCode' in bean 
class 'sample.addressbook.entry.Entry'is not readable.</faultstring>
         <detail/>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>


> 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
>              Labels: adb, beanutil
>
> 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: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to