【问题标题】:Dozer object on GAE/JGAE/J 上的推土机对象
【发布时间】:2009-06-23 19:21:20
【问题描述】:

我正在尝试使用 GWT 和 GAE/J(带有 Java 的 Google AppEngine)编写应用程序。对于我的应用程序,我需要使用 DTO。为了将 Pojo 转换为 JDO 实体,我想使用 Dozer library。因此,当我尝试转换对象时,出现以下错误:

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

当我试图在服务器内实例化映射器对象时出现错误:

Mapper mapper = new DozerBeanMapper();

我该如何解决这个问题?

【问题讨论】:

    标签: java google-app-engine dto dozer


    【解决方案1】:

    我不熟悉GAE/J,但是错误(NoClassDefFoundError)肯定告诉你类加载器找不到推土机类。你确定它在类路径上吗? 如果您尝试运行同一行会发生什么:

    Mapper mapper = new DozerBeanMapper();

    在你的容器之外,只是从简单的命令行,static main 方法?

    【讨论】:

    • 它在静态主程序中运行良好。我有一个问题说我忘记包含 .properties 文件。我这样做了,但在 GWT+GAE/J 项目中遇到了同样的问题。 :(
    【解决方案2】:

    确保 jars 位于您的类路径和 web-inf/lib 文件夹中

    【讨论】:

    • 哇,这解决了我的问题。你是我的英雄!谢谢
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多