You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Benson Margulies <bi...@gmail.com> on 2009/04/24 16:19:46 UTC

Re: org.apache.cxf.aegis.DatabindingException: No write method for property

What version of CXF?

On Fri, Apr 24, 2009 at 2:23 AM, apache_user_cxf <jo...@yahoo.com>wrote:

>
> Java Class
> public class Employee{
>    private Long id;
>    private Department department;
>
>
>    public Employee() {}
>
>
>    @XmlTransient
>    public final Long getId() {
>        return id;
>    }
>
>    @XmlTransient
>    public final Department getDepartment() {
>        return department;
>    }
>
>
>    public String getDepartmentName() {
>        return department.getName();
>    }
>
> }
>
> Can someone tell me why a setter method is expected on the Java class. I
> only want to expose the string representation of the department and not the
> entire department object. Also I dont want the clientcode to be setting the
> department name in this case.
>
> I did try exposing a no-op setter method for the deparmentName and in this
> case i was getting a null pointer exception while trying to call the
> getDepartmentName
>
> Below is server side stack trace
> org.apache.cxf.aegis.DatabindingException: No write method for property
> {http://xyz.zzz.
> departmentName in class com.xyz.Employee
>  at
> org.apache.cxf.aegis.type.basic.BeanType.writeProperty(BeanType.java:245)
>  at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:149)
>  at
>
> org.apache.cxf.aegis.AegisXMLStreamDataReader.read(AegisXMLStreamDataReader.java:
>  at
>
> org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.jav
>  at
>
> org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.jav
>  at
>
> org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInIntercepto
>  at
>
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInte
>  at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java
>  at
>
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserve
>  at
>
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.jav
>  at
>
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletContr
>  at
>
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:
>  at
>
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.jav
>  at
>
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.jav
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>  at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
>  at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>  at
>
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>  at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at org.mortbay.jetty.Server.handle(Server.java:324)
>  at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>  at
>
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
>  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741)
>  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
>  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
>  at
>
> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
>  at
>
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)
> --
> View this message in context:
> http://www.nabble.com/org.apache.cxf.aegis.DatabindingException%3A-No-write-method-for-property-tp23210601p23210601.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>