java - 我怎样才能让 Eclipse/Jetty/GWT2.0 找到 org/apache/commons/logging/Log

标签 java eclipse gwt jetty apache-commons-logging

我按照 http://blog.hivedevelopment.co.uk/2009/08/google-web-toolkit-gwt-mvp-example.html 中的示例进行操作并构建了示例 GWT 应用程序,但后来我想构建其他东西,并且我计划使用 Google AppEngine。我启动了一个新的 GWT2.0 + AppEngine 项目,并按照相同的设置添加了相同的库,从示例项目中复制并修改了我的大部分代码。我的代码可以编译,但现在每次我尝试调试我的应用程序时,我都会收到此异常并且没有任何效果。每次启动服务时,此异常都会重复两次。我以为我可能缺少 org.apache.commons.logging.Log,但是当我按住 ctrl 并单击该路径时,它是 GWT SDK 中 gwt-dev.jar 的一部分。我需要做什么来解决这个问题?

Jan 26, 2010 5:23:13 AM com.google.apphosting.utils.jetty.JettyLogger warn WARNING: failed com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@460ab1b4{/,/home/asa/Projects/Java/Groceries/Shopping/war} java.lang.NoClassDefFoundError: org/apache/commons/logging/Log at com.asaayers.server.guice.ServerModule.configureHandlers(ServerModule.java:20) at net.customware.gwt.dispatch.server.guice.ActionHandlerModule.configure(ActionHandlerModule.java:38) at com.google.inject.AbstractModule.configure(AbstractModule.java:59) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223) at com.google.inject.spi.Elements.getElements(Elements.java:101) at com.google.inject.InjectorShell$Builder.build(InjectorShell.java:135) at com.google.inject.InjectorBuilder.build(InjectorBuilder.java:102) at com.google.inject.Guice.createInjector(Guice.java:92) at com.google.inject.Guice.createInjector(Guice.java:69) at com.google.inject.Guice.createInjector(Guice.java:59) at com.asaayers.server.guice.MyGuiceServletConfig.getInjector(MyGuiceServletConfig.java:11) at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:43) at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:530) at org.mortbay.jetty.servlet.Context.startContext(Context.java:135) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117) at org.mortbay.jetty.Server.doStart(Server.java:217) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40) at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:188) at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:120) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:217) at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:86) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:377) at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:938) at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:690) at com.google.gwt.dev.DevMode.main(DevMode.java:251) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log 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 com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 31 more

最佳答案

Guice 似乎使用了commons-logging . 本教程描述了如何将一大堆 jar 放在 war/WEB-INF/bin 中。您需要从 commons-logging 站点下载 zip 文件,打开它并找到 commons-logging-1.1.1.jar,并将其放入 war/WEB-INF/lib。

Commons-logging 会发现您的类路径中有 log4j,并自动使用它。

关于java - 我怎样才能让 Eclipse/Jetty/GWT2.0 找到 org/apache/commons/logging/Log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2137695/

相关文章:

java - 自动生成的 id 未级联在 Hibernate 子实体中的 EmbeddedId 上

java - 自动聚焦于 jpanel 上的 jButton

java - Android 设备有多少个核心?我可以使用多少个线程来获得最佳性能?

java - spring boot如何使项目在eclipse中的服务器上运行

css - GWT - 隐藏水平滚动条

java - 无法使用带有错误的 MAVEN 构建 - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 1:编译

java - 在 Eclipse 中恢复旧版本的构建路径

eclipse - 如何强制eclipse使用SceneBuilder可执行文件?苹果操作系统

java - 在枚举中使用对象(特别是在 GWT 中放置)

java - GWT ui.xml 转换