Java 从应用程序中删除crimson.jar需要哪些步骤?

Java 从应用程序中删除crimson.jar需要哪些步骤?,java,xml-parsing,Java,Xml Parsing,我面临着几个问题,因为存在的深红罐和大多数论坛帖子的解决方案,这类问题是摆脱它 例如: 原因:java.lang.IllegalArgumentException:未指定任何属性 实施 位于org.apache.crimson.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:93) 发布的解决方案是: 我建议使用当前的JAXP或最新的jdk 如果您只是想开始使用xml,则包括jaxp 1.4

我面临着几个问题,因为存在的深红罐和大多数论坛帖子的解决方案,这类问题是摆脱它

例如:

原因:java.lang.IllegalArgumentException:未指定任何属性 实施 位于org.apache.crimson.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:93)

发布的解决方案是:

我建议使用当前的JAXP或最新的jdk 如果您只是想开始使用xml,则包括jaxp 1.4。JAXP 自1.3版起已取代Crimson解析器。参考第1.3节 发行说明

但是,当我删除这个crimson.jar时,我开始到处面临这样的问题:

Jan 22, 2013 8:26:07 PM org.apache.tomcat.util.digester.Digester warning
WARNING: Parse Warning Error at line 1 column 0: URI was not reported to parser for entity [document]
org.xml.sax.SAXParseException: URI was not reported to parser for entity [document]
    at gnu.xml.aelfred2.SAXDriver.warn(SAXDriver.java:934)
    at gnu.xml.aelfred2.SAXDriver.startExternalEntity(SAXDriver.java:631)
    at gnu.xml.aelfred2.XmlParser.pushURL(XmlParser.java:3358)
    at gnu.xml.aelfred2.XmlParser.doParse(XmlParser.java:159)
    at gnu.xml.aelfred2.SAXDriver.parse(SAXDriver.java:320)
    at gnu.xml.aelfred2.XmlReader.parse(XmlReader.java:294)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1543)
    at org.apache.catalina.startup.TldConfig.tldScanStream(TldConfig.java:553)
    at org.apache.catalina.startup.TldConfig.tldScanWebXml(TldConfig.java:383)
    at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:299)
    at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:585)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5061)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:525)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1360)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1406)
    at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:832)
    at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:591)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Jan 22, 2013 8:26:07 PM org.apache.tomcat.util.digester.Digester warning
WARNING: Parse Warning Error at line 3 column 138: No base URI; hope URI is absolute: http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd
org.xml.sax.SAXParseException: No base URI; hope URI is absolute: http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd
    at gnu.xml.aelfred2.SAXDriver.warn(SAXDriver.java:934)
    at gnu.xml.aelfred2.XmlParser.readExternalIds(XmlParser.java:2399)
    at gnu.xml.aelfred2.XmlParser.parseDoctypedecl(XmlParser.java:804)
    at gnu.xml.aelfred2.XmlParser.parseProlog(XmlParser.java:522)
    at gnu.xml.aelfred2.XmlParser.parseDocument(XmlParser.java:414)
    at gnu.xml.aelfred2.XmlParser.doParse(XmlParser.java:167)
    at gnu.xml.aelfred2.SAXDriver.parse(SAXDriver.java:320)
    at gnu.xml.aelfred2.XmlReader.parse(XmlReader.java:294)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1543)
    at org.apache.catalina.startup.TldConfig.tldScanStream(TldConfig.java:553)
    at org.apache.catalina.startup.TldConfig.tldScanWebXml(TldConfig.java:383)
    at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:299)
    at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:585)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5061)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:525)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1360)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1406)
    at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:832)
    at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:591)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Jan 22, 2013 8:26:08 PM org.apache.tomcat.util.digester.Digester warning
WARNING: Parse Warning Error at line 3 column 140: No base URI; hope this SYSTEM id is absolute: http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd
org.xml.sax.SAXParseException: No base URI; hope this SYSTEM id is absolute: http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd
    at gnu.xml.aelfred2.SAXDriver.warn(SAXDriver.java:934)
    at gnu.xml.aelfred2.SAXDriver.absolutize(SAXDriver.java:606)
    at gnu.xml.aelfred2.SAXDriver.resolveEntity(SAXDriver.java:585)
    at gnu.xml.aelfred2.XmlParser.pushURL(XmlParser.java:3336)
    at gnu.xml.aelfred2.XmlParser.parseDoctypedecl(XmlParser.java:845)
    at gnu.xml.aelfred2.XmlParser.parseProlog(XmlParser.java:522)
    at gnu.xml.aelfred2.XmlParser.parseDocument(XmlParser.java:414)
    at gnu.xml.aelfred2.XmlParser.doParse(XmlParser.java:167)
    at gnu.xml.aelfred2.SAXDriver.parse(SAXDriver.java:320)
    at gnu.xml.aelfred2.XmlReader.parse(XmlReader.java:294)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1543)
    at org.apache.catalina.startup.TldConfig.tldScanStream(TldConfig.java:553)
    at org.apache.catalina.startup.TldConfig.tldScanWebXml(TldConfig.java:383)
    at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:299)
    at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:585)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5061)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:525)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1360)
    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.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1406)
    at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:832)
    at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:591)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Jan 22, 2013 8:26:08 PM org.apache.catalina.startup.XmlErrorHandler logFindings
一些人提到使用JAXP1.4JAR,其他人提到xerces是crimson.jar的替代品。我已经使用了这两种方法,但是我仍然得到了那些警告异常

所以我的问题是:从我的应用程序中移除/替换这个jar和/或任何相关的jar需要什么步骤?

根据网页

2010年8月6日-阿帕奇·克里姆森已经退休

Crimson代码库基于Sun Project X解析器。它也是目前Sun产品中提供的解析器;然而,未来的计划是转移到另一个称为Xerces Java 2的代码库。Xerces 2目前正在开发中。[创建项目页面后,链接到Xerces 2。]

所以Xerces是所有需要的东西,但问题是Xerces库应该放在哪里如果它作为war的一部分放在哪里,它将产生上面提到的所有问题,它不应该是war库的一部分,而应该是服务器共享库的一部分


对于tomcat,您可以将其放置在Websphere的lib文件夹中,您可以将其放置在任何位置,并将其添加到您的应用程序共享库类路径中。

这是您正在开发的应用程序吗?如果是,您使用什么构建系统?蚂蚁?专家或者这仅仅是您获得并部署到tomcat服务器中的一些二进制可部署归档文件?我正在使用Netbeans 7(Ant)我有一个现有的Web应用程序正在使用crimson.jar,目前我必须添加模块来进行标记、加密、解密。。bla bla作为独立应用程序测试的新模块在集成到我的web应用程序后运行良好它引发了以下异常:java.lang.IllegalArgumentException:org.apache.crimson.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:93)中未实现任何属性当我试图删除这个crimson.jar时,我得到了上面提到的长警告异常。我遇到了类似的问题。我无法启动非常旧(但仍然是必需的)应用程序。如果我尝试使用java 1.4以外的任何更新版本启动它,我会得到以下错误消息:
java.lang.ClassNotFoundException:org.apache.crimson.jaxp.DocumentBuilderFactoryImpl
它已经失效,很好,但它仍然出现在我的堆栈跟踪中。它不在我的任何jar中,也不在服务器上部署的任何jar中,也不在classes目录中,但它仍然显示在我的堆栈跟踪中。