java.lang.NoSuchFieldError:是否启用了安全性

java.lang.NoSuchFieldError:是否启用了安全性,java,eclipse,jsp,jetty,maven-jetty-plugin,Java,Eclipse,Jsp,Jetty,Maven Jetty Plugin,我想在两台服务器上部署一个服务。我在一台服务器上成功,但在另一台服务器上失败。事实上,我尽我所能让他们的环境保持一致。错误日志如下所示: 2013-01-21 22:08:18.178:WARN:oejuc.AbstractLifeCycle:FAILED jsp: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED java.lang.NoSuchFieldError: IS_SECURITY_ENABLED at org.apache.ja

我想在两台服务器上部署一个服务。我在一台服务器上成功,但在另一台服务器上失败。事实上,我尽我所能让他们的环境保持一致。错误日志如下所示:

2013-01-21 22:08:18.178:WARN:oejuc.AbstractLifeCycle:FAILED jsp: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED
java.lang.NoSuchFieldError: IS_SECURITY_ENABLED
    at org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext.java:197)
    at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:150)
    at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)
    at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:776)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:58)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91)
    at org.eclipse.jetty.server.Server.doStart(Server.java:263)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:457)
    at org.eclipse.jetty.start.Main.start(Main.java:602)
    at org.eclipse.jetty.start.Main.main(Main.java:82)
2013-01-21 22:08:18.178:警告:oejuc.AbstractLifeCycle:失败的jsp:java.lang.NoSuchFieldError:是否启用了安全性
java.lang.NoSuchFieldError:是否启用了安全性
位于org.apache.jasper.compiler.JspRuntimeContext.(JspRuntimeContext.java:197)
位于org.apache.jasper.servlet.JspServlet.init(JspServlet.java:150)
位于org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)
位于org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
位于org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:776)
位于org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)
位于org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213)
位于org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)
位于org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
位于org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36)
位于org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183)
位于org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491)
位于org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138)
在org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142)上
位于org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53)
位于org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604)
位于org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535)
位于org.eclipse.jetty.util.Scanner.scan(Scanner.java:398)
位于org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
位于org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
位于org.eclipse.jetty.deploy.DeploymentManager.startapprovider(DeploymentManager.java:552)
位于org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
位于org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:58)
位于org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53)
位于org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91)
位于org.eclipse.jetty.server.server.doStart(server.java:263)
位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
位于org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215)
位于java.security.AccessController.doPrivileged(本机方法)
位于org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.eclipse.jetty.start.Main.invokeMain(Main.java:457)
位于org.eclipse.jetty.start.Main.start(Main.java:602)
位于org.eclipse.jetty.start.Main.Main(Main.java:82)
谢谢你的帮助

这是Jasper JSP编译器内部类之一的一部分。此错误表明您(或Maven)出于某种原因将Jasper JSP编译器JAR文件包含在webapp的
/WEB-INF/lib
文件夹中,而这些JAR文件应该已经由目标容器(在您的例子中是Jetty)提供

只有当您的webapp包含与目标容器版本完全相同的jasperjar文件时,这种方法才有效。但毕竟,这不是正确的方法。这些Jasper JAR文件不属于webapp的
/WEB-INF/lib
。它们应该已经由目标容器提供。你需要在webapp的
/WEB-INF/lib
中去掉它们


我不是Maven英雄,但是,说到这里,您需要告诉它不要将Jasper JAR文件包含在内置WAR的
/WEB-INF/lib
文件夹中。您可以将其设置为
提供的

Hello@BalusC,谢谢您的回答。事实上,我将整个项目从正常运行的服务器复制到新服务器,新服务器上仍然存在问题。顺便说一句,这两台服务器获得相同的java版本。[java版本“1.6.0_25”、java(TM)SE运行时环境(build 1.6.0_25-b06)、java HotSpot(TM)64位服务器VM(build 20.0-b11,混合模式)]如前所述,清理运行时类路径以清除恶意Jasper JSP编译器JAR文件。查看内置WAR文件的
/WEB-INF/lib
文件夹。它不应该包含任何特定于容器的JAR文件。
java.lang.NoSuchFieldError: IS_SECURITY_ENABLED