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.

Reply via email to