运行我的应用程序时出现此错误:
[ERROR] Apr 12,2013 10:18:56 AM com.google.appengine.tools.development.ApiProxyLocalImpl log [ERROR] INFO: javax.servlet.ServletContext log: Initializing Shiro environment [ERROR] 1601 [main] INFO org.apache.shiro.web.env.EnvironmentLoader - Starting Shiro environment initialization. [ERROR] 1931 [main] INFO org.apache.shiro.config.IniSecurityManagerFactory - Realms have been explicitly set on the SecurityManager instance - auto-setting of realms will not occur. [ERROR] 1984 [main] ERROR org.apache.shiro.web.env.EnvironmentLoader - Shiro environment initialization Failed [ERROR] java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String; [ERROR] at org.slf4j.impl.SimpleLogger.formatandLog(SimpleLogger.java:222) [ERROR] at org.slf4j.impl.SimpleLogger.info(SimpleLogger.java:258) [ERROR] at org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:146) [ERROR] at org.apache.shiro.web.env.EnvironmentLoaderListener.contextInitialized(EnvironmentLoaderListener.java:58) [ERROR] at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) [ERROR] at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) [ERROR] at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) [ERROR] at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) [ERROR] at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) [ERROR] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [ERROR] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) [ERROR] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [ERROR] at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) [ERROR] at org.mortbay.jetty.Server.doStart(Server.java:224) [ERROR] at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [ERROR] at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:228) [ERROR] at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:255) [ERROR] at com.google.appengine.tools.development.AbstractServer.startup(AbstractServer.java:79) [ERROR] at com.google.appengine.tools.development.DevAppServerImpl$Servers.startup(DevAppServerImpl.java:451) [ERROR] at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:198) [ERROR] at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97) [ERROR] at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) [ERROR] at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068) [ERROR] at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811) [ERROR] at com.google.gwt.dev.DevMode.main(DevMode.java:311) [ERROR] Apr 12,2013 10:18:56 AM com.google.apphosting.utils.jetty.JettyLogger warn
这是我的pom.xml配置的一部分,我认为这与此有关:
<properties> <!-- other properties omitted --> <slf4jVersion>1.5.11</slf4jVersion> </properties> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4jVersion}</version> </dependency> <dependency> <!-- any library that uses commons-logging will be directed to slf4j --> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4jVersion}</version> </dependency> <dependency> <!-- any library that uses slf4j will be directed to java.util.logging --> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version>${slf4jVersion}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${slf4jVersion}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4jVersion}</version> </dependency>
我很确定我将SLF4j版本全部设置为一个版本.我的配置有什么问题?
解决方法
使用较新版本的slf4j,例如1.7.5.