java - Tomcat 6 启动时的警告和错误

标签 java tomcat startup

我是 Tomcat 的新手,我的任务是将 Tomcat 5/Java 1.4 应用程序迁移到 Tomcat 6/Java 6。

在 Eclipse 中启动 tomcat 6 时,我不断收到多个警告,例如:

No rules found matching 'Server/GlobalNamingResources/ResourceParams/parameter/value'. 6 août 2012 14:49:32 org.apache.tomcat.util.digester.Digester endElement (50 times or so...)

然后

[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:MyProject' did not find a matching property. 6 août 2012 14:49:32 org.apache.tomcat.util.digester.SetPropertiesRule begin

然后

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\METIER\MES\java\jdk1.6.0_11\bin; [+ multiple different paths] 6 août 2012 14:49:32 org.apache.coyote.http11.Http11Protocol init

然后

Could not get url for /javax/servlet/jsp/resources/jsp_2_1.xsd 6 août 2012 14:49:32 org.apache.catalina.startup.DigesterFactory register

然后,毫不奇怪,webApp load() 出现异常

GRAVE: La servlet /SdcReaderService a généré une exception "load()" org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412) at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272) at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395) at org.apache.jasper.servlet.JspServlet.(JspServlet.java:58) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 6 août 2012 14:49:32 org.apache.tomcat.util.modeler.Registry registerComponent GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/SdcReaderService,J2EEApplication=none,J2EEServer=none 6 août 2012 14:49:32 org.apache.catalina.core.ApplicationContext log INFO: La servlet jsp est marqué comme indisponible 6 août 2012 14:49:32 org.apache.catalina.core.StandardContext loadOnStartup GRAVE: La servlet a généré une exception "load()" java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.servlet.JspServlet at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 6 août 2012 14:49:32 org.apache.tomcat.util.modeler.Registry registerComponent GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/,J2EEApplication=none,J2EEServer=none 6 août 2012 14:49:32 org.apache.catalina.core.ApplicationContext log INFO: La servlet jsp est marqué comme indisponible 6 août 2012 14:49:32 org.apache.catalina.core.StandardContext loadOnStartup GRAVE: La servlet /PlmIterableObjectServiceReader a généré une exception "load()" java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.servlet.JspServlet at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 6 août 2012 14:49:32 org.apache.tomcat.util.modeler.Registry registerComponent GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/PlmIterableObjectServiceReader,J2EEApplication=none,J2EEServer=none 6 août 2012 14:49:33 org.apache.catalina.core.StandardContext addApplicationListener INFO: The listener "com.rolex.j2ee.MyProject.util.MyProjectServletCtxListener" is already configured for this context. The duplicate definition has been ignored. 6 août 2012 14:49:33 org.apache.catalina.core.StandardContext addApplicationListener INFO: The listener "com.rolex.j2ee.MyProject.util.SessionListener" is already configured for this context. The duplicate definition has been ignored. 6 août 2012 14:49:33 org.apache.catalina.core.ApplicationContext log INFO: La servlet jsp est marqué comme indisponible 6 août 2012 14:49:33 org.apache.catalina.core.StandardContext loadOnStartup GRAVE: La servlet /MyProject a généré une exception "load()" java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.servlet.JspServlet at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1104) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 6 août 2012 14:49:33 org.apache.tomcat.util.modeler.Registry registerComponent GRAVE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/MyProject,J2EEApplication=none,J2EEServer=none

我猜问题出在Tomcat的配置文件上,但我不明白上面每个警告/错误的确切原因是什么。例如,在 server.xml 文件中,全局命名资源似乎已正确定义,所以我是否应该查找缺少的资源参数 block ,或者文件中的某种语法错误,或者缺少的 .jar,或者...... ?

欢迎任何建议!

最佳答案

这里的基本问题是您不能简单地使用 Tomcat 5.5 server.xml文件,将其放入 Tomcat 6 中,并期望它无需任何更改即可工作。您需要阅读 Migration Guide除其他事项外。最好的策略是从 server.xml 开始随 Tomcat 一起提供,并按照您配置以前版本的方式进行配置所需的任何修改。这通常意味着 <Connector><Resource>定义。请注意,您不应定义 <Context> server.xml 中的元素不再

请注意:如果您要升级到 Tomcat 的不同主要版本,为什么不一直升级到 Tomcat 7.0?

No rules found matching 'Server/GlobalNamingResources/ResourceParams/parameter/value

<Resource>元素不再采用名为 <parameter> 的子元素等。相反,将所有参数转换为 <Resource> 的属性元素。

[SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' ...

<Context>不支持“source”属性:Eclipse 正在添加它,它不应该存在。请注意,这只是一个警告:尽管有此消息,Tomcat(和您的 Web 应用程序)仍将正常启动。

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found ...

你还没有编译Tomcat的原生库,但是你配置了AprLifecycleListener ,它会尝试加载此库。如果您想使用 APR,请转到 get it and compile it .如果您不想要或不需要它,请禁用 AprLifecycleListener (或者忽略警告消息,这不会造成任何伤害)。如果您将 Tomcat 用于 SSL 终止,则使用 APR 是一个非常好的主意,因为 APR 的 SSL 性能比 Java 的 JSSE 高得多,而且如果您需要这种东西,APR 还支持 FIPS 模式。 APR 连接器的扩展性也比 BIO 连接器好得多,即使您没有使用 SSL。

Could not get url for /javax/servlet/jsp/resources/jsp_2_1.xsd ...

我不确定我能否在这方面为您提供帮助。如果没有完整的堆栈跟踪或其他信息(例如提到该 URL 的文件),我们将无能为力。

关于java - Tomcat 6 启动时的警告和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829348/

相关文章:

html - 文本字段未打印格式化

spring-boot - 无法创建 tempDir,java.io.tmpdir 设置为 C :\Windows\

c# - Revit C# 运行代码 "OnShutDown"和 "OnStartup"

Java:对进程死亡采取行动?

java - 我的 Java 代码有什么问题,因为它一直使用默认答案进行回答?

java - 为什么 Kotlin 不能推断以下 lambda 参数(在 Java -> Kotlin 转换之后)?

apache - jkmount 将挂载路径传递给 tomcat

java - 以编程方式将 Java 应用程序添加到启动

macos - 如何为 Mac OS X 编写启动脚本?

Java - 为遗留系统生成 XML