Tutorial :Dozer object on GAE/J



Question:

I'm trying to write application using GWT and GAE/J (Google AppEngine with Java). For my application i need to use DTO. In order to convert Pojo into JDO Entities I want to use Dozer library. So when i'm trying to convert object I'm getting following error:

Jun 23, 2009 7:12:30 PM com.google.appengine.tools.development.ApiProxyLocalImpl log  SEVERE: [1245784350843000] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call  com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.athena.client.entities.Person com.athena.client.GreetingService.getPerson(com.athena.client.entities.Person)' threw an unexpected exception: java.lang.NoClassDefFoundError: org/dozer/DozerBeanMapper      at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360)      at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546)      at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166)      at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)      at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)      at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)      at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)      at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54)      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)      at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:306)      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)      at org.mortbay.jetty.Server.handle(Server.java:313)      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)  Caused by: java.lang.NoClassDefFoundError: org/dozer/DozerBeanMapper      at com.athena.server.GreetingServiceImpl.getPerson(GreetingServiceImpl.java:38)      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)      at java.lang.reflect.Method.invoke(Unknown Source)      at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)      ... 25 more  

I'm getting error when I'm just trying to instantiate mapper object inside the server:

Mapper mapper = new DozerBeanMapper();  

How do I solve this problem?


Solution:1

Make sure the jars are in your classpath and in the web-inf/lib folder


Solution:2

I am not familiar with GAE/J, but the error (NoClassDefFoundError) definitely tells you the class loader cannot find the dozer class. Are you sure it's on the classpath? What happens if you try to run the same line:

Mapper mapper = new DozerBeanMapper();

outside of your container, just from plain command line, static main method?


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »