无法使用外部库进行谷歌应用引擎java项目

时间:2010-02-05 07:36:52

标签: eclipse google-app-engine

我安装了一个带有Google App Engine插件和Google App Engine SDK 1.3.0的Eclipse。 我使用Google App Engine SDK 1.3.0创建了一个新的Web项目。 现在,我想在jsp文件中为一些高级JSTL语法添加一个库,它是EL-functors(http://el-functors.sourceforge.net)。 为了让EL-functor在jsp文件中获取其高级语法并将它们编译为标准的jsp语法,我必须在web.xml中添加一些监听器:

<listener>
  <listener-class>beanface.el.functor.InstallFunctorListener</listener-class>
</listener>

另外,我已将standar.jar,jstl.jar,el-functors-1.0.3.jar添加到我的构建路径中。 但是,当我启动Web服务器(使用Debug As&gt; Web Project)时,在控制台日志中,我看到以下错误消息:

Initializing AppEngine server
Feb 5, 2010 7:22:45 AM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Could not instantiate listener beanface.el.functor.InstallFunctorListener
java.lang.ClassNotFoundException: beanface.el.functor.InstallFunctorListener
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at ........
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
    at com.google.gwt.dev.DevMode.main(DevMode.java:275)

我猜应该有一些原因导致库未加载。 当我来战争/ WEB-INF / lib时,我看不到standard.jar,jstl.jar和el-functors.1.0.3.jar覆盖;只部署谷歌应用引擎罐。

那里有什么问题,我该如何解决?

3 个答案:

答案 0 :(得分:24)

您需要手动将所需的jar复制到/ WEB-INF / lib文件夹。

在开始使用app-engine构建时,我遇到了类似的问题。经过一些研究,我得出的结论是,这是让它运作的唯一方法。

很想知道我是不是错了:)

答案 1 :(得分:5)

有一种用户友好的替代方法可以手动处理罐子 - 快速修复

转到标记视图,找到相应的警告(以下类路径条目“...),从上下文菜单中选择”快速修复“,然后单击”复制到/ WEB-INF / lib并更新类路径以引用这个罐子“

答案 2 :(得分:1)

我正在使用App Wrench工具自动将jar复制到/ WEB-INF / lib目录中。仅当您在该jar中没有任何@Entity标记的类时才有效。