作者dream1124 (全新开始)
看板java
标题[问题] 如何让 eclipse WTP 协助GAE的专案?
时间Thu Apr 7 02:43:19 2011
这边想做的事情很单纯
我想在开发过程中使用 eclipse WTP 的功能协助 Google App Engine 建立的专案,
最想要的功能就是产生servlet filter listener code template、web.xml 自动设定..
更进一步的话还希望能让专案也可以在自己的 J2EE Web Container上面跑。
但因为eclipse的 WTP套件没办法认得 GAE 的专案,
所以使用eclipse project facet的方法让 GAE 专案挂上 WTP 的功能
也就是「Dynamic Web Module」
现在的问题点在於,一旦挂上 WTP 以後,似乎会因为 IDE 将类别重覆载入,
所以 GAE 的 DataNucleus enhancer 强化类别会失败,错误讯息是︰
org.datanucleus.exceptions.NucleusException: Plugin (Bundle)
"org.datanucleus.store.appengine" is already registered.
Ensure you dont have multiple JAR versions of the same plugin in the classpath.
The URL ${专案资料夹}/war/WEB-INF/lib/datanucleus-appengine-1.0.8.final.jar"
is already registered, and you are trying to register an identical plugin
located at URL 以下略
虽然网路上有提供解法,就是删掉专案里的datanucleus-appengine-1.0.8.final.jar︰
http://www.google.com/support/forum/p/news/thread?tid=34272f474ae0e1c9&hl=en
但我发现删掉专案里面的 datanucleus-appengine-1.0.8.final.jar
会导致专案到本地的GAE开发伺服器上面跑时,出现例外︰
java.lang.ClassNotFoundException:
org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory
大家可能会想说,可不可以在布署专案到本地GAE伺服器之前,再把原本的
datanucleus-appengine-1.0.8.final.jar 放回到lib\ 底下看看?
可是我发现上述搬移.jar档的过程会触发 DataNucleus 自动重新强化专案,
然後当然就因为一样的原因而强化失败....
想请问有没有板大解决了 GAE project 和 Dynamic Web Module 之间的冲突问题呢?
或着就算不能解决这个问题,那请问要怎麽让 GAE 专案能产生 code template、
自动设定 web.xml 呢?
谢谢大家!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.148.30
※ 编辑: dream1124 来自: 61.231.148.30 (04/07 02:49)
1F:→ dream1124:已解决, 我发现只要删掉 IDE 建立的 Web app lib即可 04/07 03:21