我有一个安装了Google App Engine插件和Google App Engine SDK 1.3.0的Eclipse。
我使用Google App Engine SDK 1.3.0创建了一个新的Web项目。
现在,我想为jsp文件添加一个名为EL-functors的高级JSTL语法库(http://el-functors.sourceforge.net)。
为了让EL-functors在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> 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)
我猜测有一些原因导致库未被加载。当我来到war/WEB-INF/lib时,我看不到standard.jar、jstl.jar和el-functors.1.0.3.jar,只有谷歌应用引擎库被部署。
问题出在哪里?我该如何解决?
war/WEB-INF/lib
中的原因是整个 Eclipse 项目都在您的本地计算机上。当您引用一个 jar 文件时,实际上是在指向计算机中某个位置。然而,Google 使用自己的服务器托管应用程序,因此这些 jar 文件需要在他们的服务器上有一份副本。 - Matthew Quiros