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.