1

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

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

未找到与“服务器/GlobalNamingResources/ResourceParams/parameter/value”匹配的规则。6 août 2012 14:49:32 org.apache.tomcat.util.digester.Digester endElement(50次左右......)

然后

[SetPropertiesRule]{Server/Service/Engine/Host/Context} 将属性 'source' 设置为 'org.eclipse.jst.jee.server:MyProject' 没有找到匹配的属性。6 août 2012 14:49:32 org.apache.tomcat.util.digester.SetPropertiesRule 开始

然后

在 java.library.path: C:\METIER\MES\java\jdk1.6.0_11\bin 中找不到允许在生产环境中获得最佳性能的基于 APR 的 Apache Tomcat Native 库;[+ 多个不同的路径] 6 août 2012 14:49:32 org.apache.coyote.http11.Http11Protocol init

然后

无法获取 /javax/servlet/jsp/resources/jsp_2_1.xsd 6 août 2012 14:49:32 org.apache.catalina.startup.DigesterFactory 注册的 url

然后,不出所料,webApp load() 上的异常

已经为此上下文配置了侦听器“com.rolex.j2ee.MyProject.util.MyProjectServletCtxListener”。重复的定义已被忽略。6 août 2012 14:49:33 org.apache.catalina.core.StandardContext addApplicationListener 信息:已经为此上下文配置了侦听器“com.rolex.j2ee.MyProject.util.SessionListener”。重复的定义已被忽略。6 août 2012 14:49:33 org.apache.catalina.core.ApplicationContext 日志信息:La servlet jsp est marqué comme indisponible 6 août 2012 14:49:33 org.apache.catalina.core.StandardContext loadOnStartup GRAVE:La servlet / MyProject 一个 généré une 异常“load()”java.lang.NoClassDefFoundError:无法在 sun.reflect.NativeConstructorAccessorImpl 初始化类 org.apache.jasper.servlet.JspServlet。

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

欢迎任何建议!

4

1 回答 1

3

这里的基本问题是,您不能简单地将 Tomcat 5.5server.xml文件放入 Tomcat 6 中,并期望它无需任何更改即可工作。您需要阅读迁移指南以及其他内容。最好的策略是从server.xmlTomcat 附带的 Tomcat 开始,并进行任何您需要的修改来配置它,就像您配置了以前的版本一样。这通常意味着<Connector><Resource>定义。请注意,您不应再定义<Context>元素server.xml

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

未找到与“服务器/GlobalNamingResources/ResourceParams/parameter/value”匹配的规则

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

[SetPropertiesRule]{Server/Service/Engine/Host/Context} 设置属性 'source' ...

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

未找到基于 APR 的 Apache Tomcat Native 库,该库可在生产环境中实现最佳性能...

你还没有编译 Tomcat 的本地库,但是你已经配置了AprLifecycleListener,它会尝试加载这个库。如果你想使用 APR,去获取它并编译它。如果您不想要或不需要它,请禁用AprLifecycleListener(或忽略警告消息,这不会造成任何伤害)。如果您使用 Tomcat 进行 SSL 终止,则使用 APR 是一个非常好的主意,因为 APR 的 SSL 性能比 Java 的 JSSE 高得多,而且如果您需要这种东西,APR 还支持 FIPS 模式。即使您不使用 SSL,APR 连接器的扩展性也比 BIO 连接器好得多。

无法获取 /javax/servlet/jsp/resources/jsp_2_1.xsd 的 url ...

我不确定我能不能帮你解决这个问题。如果没有完整的堆栈跟踪或其他信息(例如提到该 URL 的文件),我们将无能为力。

于 2012-08-06T14:41:30.713 回答