gpt4 book ai didi

tomcat - 撒克逊 XMLBeans Tomcat

转载 作者:行者123 更新时间:2023-11-28 22:15:21 35 4
gpt4 key购买 nike

我们最近更新了我们的 Tomcat 网络服务。我们唯一真正更新的是我们将 XMLBeans 更新到 2.4 版,将 Saxon 更新到版本 9。

运行 Netbeans 和 eclipse,我们的项目现在工作正常,但是当尝试部署到 tomcat 时,我们得到以下信息。

我们尝试将 JAXEN 更新到 1.1.1 版,但没有成功。

有什么想法吗?

我们在部署中遇到的错误是:

java.lang.IllegalArgumentException: dom4j-core,jdom,xml-apis,xerces,junit-Extension-Name
at java.util.jar.Attributes$Name.(Attributes.java:440)
at java.util.jar.Attributes.getValue(Attributes.java:99)
at org.apache.catalina.util.ManifestResource.getRequiredExtensions(ManifestResource.java:186)
at org.apache.catalina.util.ManifestResource.processManifest(ManifestResource.java:155)
at org.apache.catalina.util.ManifestResource.(ManifestResource.java:52)
at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:186)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:511)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1220)
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:585)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1458)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:820)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:348)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)

最佳答案

问题是由 JAR 文件引起的,该文件的 MANIFEST.MF 文件包含 Tomcat 不喜欢的 Extension-List 属性值。 Tomcat 期望此属性的值是以空格分隔的扩展名称列表(请参阅 ManifestResource source ),但您的 JAR 之一似乎具有逗号分隔列表 dom4j-core,jdom,xml-apis,xerces ,junit 代替。此列表中没有空格,因此 Tomcat 认为这都是一个大扩展名。

扩展名称也用于 list 中其他属性名称的前缀。例如,这是有效 list 的一部分:

Extension-List: ant qdox commons-attributes-api javadocant-Extension-Name: antant-Implementation-Version: 1.5ant-Implementation-URL: http://www.ibiblio.org/maven/ant/jars/ant-1.5. jarqdox-Extension-Name: qdoxqdox-Implementation-Version: 1.5

属性名只能包含字母、数字、连字符和下划线,因此扩展名也必须遵循相同的规则。带有逗号的扩展名称显然是无效的,这就是您遇到上述异常的原因。

我看过官方JAR file specification ,但这似乎并未说明应如何分隔这些扩展名。

我不能说哪个 JAR 在其 list 中有这个逗号分隔的 Extension-List 属性。但是,我会首先检查最新版本的 XMLBeans 和 Saxon 中的 JAR 文件。如果您的项目在升级前工作正常,那么问题很可能是由最近发生的变化引起的。

修复当然是编辑有问题的 list 文件以在其 Extension-List 属性中使用空格而不是逗号。

祝你好运!

关于tomcat - 撒克逊 XMLBeans Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854711/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com