2009-06-23 6 views
1

GWTとGAE/J(Google AppEngine with Java)を使用してアプリケーションを作成しようとしています。私のアプリケーションでは、私はDTOを使用する必要があります。 PojoをJDOエンティティに変換するには、Dozer libraryを使います。私はオブジェクトを変換しようとしているとき、だから私は、次のエラー取得しています:GAE/JのDozerオブジェクト

Mapper mapper = new DozerBeanMapper(); 

方法:

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 

を私はちょうどサーバー内マッパーオブジェクトをインスタンス化しようとしているとき、私はエラーを取得しています私はこの問題を解決するのですか?

答えて

1

jarがクラスパスとweb-inf/libフォルダにあることを確認してください。

+0

うわー、これは私の問題を解決した。あなたは私のヒーローです!ありがとう – Maksim

2

私はGAE/Jに精通していませんが、エラー(NoClassDefFoundError)は、クラスローダーがドーザークラスを見つけることができないことを明示しています。あなたはそれがクラスパスにあると確信していますか?単なるコマンドライン、static main方法から、あなたの容器の外側

Mapper mapper = new DozerBeanMapper();

:あなたが同じ行を実行しようとした場合 はどうなりますか?

+0

静的メインプログラムでうまく動作します。 .propertiesファイルをインクルードするのを忘れていたという問題が1つありました。私はGWT + GAE/Jプロジェクトでも同じことをしました。 :( – Maksim

関連する問題