[
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: [email protected]
For additional commands, e-mail: [email protected]