GAE/Jのグループの、SDK1.2.6でも新規に作成したプロジェクトだと問題なく開発サーバーが起動するという投稿を参考にして、新規にプロジェクトを作成した上で、これまでのリソースをコピーし、起動を試してみた。すると、起動するようになった!!やたっ!
[環境]
- Eclipse : v3.4.2(Ganymade)
- Google Plugin for Eclipse 3.4 : v1.1.2
- Google App Engine Java SDK : v1.2.6
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338) Caused by: java.lang.RuntimeException: Unable to find appengine-agentimpl.jar in hogehoge\war\WEB-INF\junitlib at com.google.appengine.tools.development.agent.AppEngineDevAgent.findAgentImplLib(AppEngineDevAgent.java:97) at com.google.appengine.tools.development.agent.AppEngineDevAgent.premain(AppEngineDevAgent.java:48) ... 6 more FATAL ERROR in native method: processing of -javaagent failed Exception in thread "main"要は、ユニットテストのために上記2つのjarをwar\WEB-INF\junitlibに入れ、クラスパスを通していたのだが(ユニットテストの環境設定についてはこちらにまとめています)、1.2.6に同梱されているバージョンのjarを使うと、クラスパスを通しているせいか、起動時にこのjunitlibの中に必要なjar(この場合はappengine-agentimpl.jar)を探しに行ってしまうのだ。
1.2.5同梱バージョンのものを使うと、InvocationTargetExceptionは表示されない。1.2.5のものではなくても、1.2.6のものでなければよいのではないかと思われ。
ちなみに自分の環境だと、-javaangentの指定をVM Argumentsに加えなくても起動します。この辺はEclipseのバージョンとGoogle Pluginのバージョンによるのかもしれません。 とりあえず、1.2.6に移行して上手く行かなくなった場合は、新規にプロジェクトを作り直してマージした方が話が早いということで。
0 件のコメント :
コメントを投稿