- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OmniFaces/Xercex/迁移 JSF-Web-Projekt(Java 和 Tomcat)时的命名冲突
简介
我们在过去几年开始构建和企业 JSF 应用程序(Eclipse、Maven、CDI(Open-Web-Beans)、Omni-Faces、PrimeFaces,...)。
现在我们想从 java 1.8 和 tomcat 7 迁移到更新的版本。
问题
我们尝试在 tomcat 9 和 openjdk 14 上运行我们的应用程序,但没有成功,因此我们尝试将所有依赖项升级到兼容版本。
现在我们被困在启动 tomcat(在 eclipse 2020-03 中),但有以下异常(exception) - 不知道从哪里继续。
添加的文件
我添加了我们的 pom 文件,以及异常之后的依赖项和版本。如果您需要任何其他或更多详细信息,请随时询问。我正在寻找任何可以指出我们使用错误的版本的正确方向的人。
INFO: OpenSSL successfully initialized [OpenSSL 1.1.1g 21 Apr 2020]
Juni 09, 2020 4:12:29 PM org.apache.coyote.AbstractProtocol init
INFO: Initialisiere ProtocolHandler["http-nio-8080"]
Juni 09, 2020 4:12:30 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [1.952] milliseconds
Juni 09, 2020 4:12:30 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Juni 09, 2020 4:12:30 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.36]
Juni 09, 2020 4:12:53 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Juni 09, 2020 4:12:53 PM org.omnifaces.ApplicationInitializer logOmniFacesVersion
INFO: Using OmniFaces version 3.6
Juni 09, 2020 4:12:53 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/application]]
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/application]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
... 21 more
Caused by: java.lang.IllegalStateException: OmniFaces failed to initialize! Report an issue to OmniFaces.
at org.omnifaces.ApplicationInitializer.onStartup(ApplicationInitializer.java:57)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5128)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 27 more
Caused by: java.lang.AbstractMethodError: Receiver class org.apache.xerces.jaxp.DocumentBuilderFactoryImpl does not define or inherit an implementation of the resolved method 'abstract void setFeature(java.lang.String, boolean)' of abstract class javax.xml.parsers.DocumentBuilderFactory.
at org.omnifaces.util.Xml.createDocumentBuilder(Xml.java:88)
at org.omnifaces.util.Xml.createDocument(Xml.java:69)
at org.omnifaces.util.Xml.getNodeTextContents(Xml.java:172)
at org.omnifaces.facesviews.FacesViews.scanAndStoreWelcomeFiles(FacesViews.java:413)
at org.omnifaces.facesviews.FacesViews.registerForwardingFilter(FacesViews.java:266)
at org.omnifaces.ApplicationInitializer.onStartup(ApplicationInitializer.java:54)
... 29 more
异常再重复两次 - 然后继续:
Juni 09, 2020 4:12:53 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-nio-8080"]
Juni 09, 2020 4:12:53 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service [Catalina]
Juni 09, 2020 4:12:53 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-nio-8080"]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.catalina.loader.WebappClassLoaderBase (file:/N:/Entwicklung_Projekte/Projekt_Framework_41/JSF-Client/Forschung/Tomcat/apache-tomcat-9.0.36/lib/catalina.jar) to field java.io.ObjectStreamClass$Caches.localDescs
WARNING: Please consider reporting this to the maintainers of org.apache.catalina.loader.WebappClassLoaderBase
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
(仅依赖项)
<!-- framework.jar -->
<dependency>
<groupId>com.qsc.portalclient.framework</groupId>
<artifactId>framework</artifactId>
<version>0.0.1</version>
</dependency>
<!-- PrimeFaces -->
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>8.0</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>primefaces-extensions</artifactId>
<version>8.0.2</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>resources-ckeditor</artifactId>
<version>8.0.2</version>
<scope>runtime</scope>
</dependency>
<!-- JSF - Mojarra - API & IMPL -->
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.3.6</version>
</dependency>
<!-- CDI OpenWebBeans -->
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>2.0.SP1</version>
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-impl</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-spi</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-web</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-jsf</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>org.apache.openwebbeans</groupId>
<artifactId>openwebbeans-el22</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
<!-- JSP Library -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<!-- JSTL Library -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- OmniFaces -->
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>3.6</version>
</dependency>
最佳答案
我终于找到了答案。
我发现了以下问题,该问题已得到解答: java.lang.AbstractMethodError: org.apache.xerces.dom.ElementImpl.getTextContent()Ljava/lang/String
解决方案是升级 Xercex 或将其从\lib 中完全删除。
我们使用的是内部 Jar 文件,它本身包含 xercex 的旧版本 2.4.0。这导致了问题。
在内部 jar-dependency 为我修复后包括以下版本的 xerxes:
<!-- https://mvnrepository.com/artifact/xerces/xercesImpl -->
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.0</version>
</dependency>
关于java.lang.AbstractMethodError : org. apache.xerces.jaxp.DocumentBuilderFactoryImpl 不继承抽象 javax.xml.parsers.DocumentBuilderFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62285448/
想象一个 xml 文件,它使用 noNamespaceSchemaLocation 引用架构。 我想在解析期间使用某种解析技术(例如用于解析架构包含的 ResourceResolver)动态解析 no
有什么区别吗 DocumentBuilder.parse(InputStream) 和 DocumentBuilder.parse(InputSource) ? 我只能发现对于第一种情况,解析器会从流
Transformer 方法转换的签名是 void transform(Source xmlSource,Result outputTarget)throws TransformerException
我正在尝试从 android(java) 中的 xml 文档中检索一个节点。 XPATH config:Manifest/config:Text[@config:name='site
我有一个像这样的 XML: john 20 20 kayla female 20
在使用 Xerces 验证 XML 文档时,它会尝试访问 w3c.org 中的互联网资源。我的应用程序需要离线/在防火墙后面工作,因此抛出异常。 有解决办法吗? ps。此链接提供了一些见解,但没有解决
我有一个 Tomcat 5.5 Web 应用程序,它使用 Apache Commons-Configuration 库在运行时生成 XML 配置文件。 Commons-Configuration 反过
我想提供有关正在使用的 JAXP 实现以及从哪个 JAR 文件加载它的诊断信息。 实现此目的的一种方法是在例如 DocumentBuilderFactory 的实例中创建,然后检查该类的属性: pri
有人知道在底层 POJO 上运行的标准 javax.xml.transform.Source 和 javax.xml.transform.Result 的实现吗? 换句话说,我想使用 XSLT 将一个
我正在动态生成一个需要在运行时针对架构进行验证的文档。我遇到的问题是文档的结构是正确的,但每个级别的元素顺序不正确。有没有办法告诉转换器按照 xsd 文件指定的顺序写出元素?或者我是否必须解析 xsd
我遇到一种情况,我们想要根据文件系统中放置的 XSD 来验证作为字节流保存在内存中的 XML 文档。我们希望避免在 XML 文件中明确提及文件名,而是告诉 XML 解析器使用一个或多个 XSD 文件的
我有一个引用了 dtd 文件的 xml 文件。 ... 我设法用 JAXP 读取这个文件,但前提是 referenced.dtd 与 xml 文件位于同一文件夹中。否则我会收到无法加载 dtd 文
我想通过 DocumentBuilder 中完成的验证提供我自己的消息,而不是来自 XMLMessages.properties 的消息。 现在我看到一个属性 error-reporter需要设置为扩
javax.xml.soap.MessageFactory是否可以重用? IE。 msgFactory = MessageFactory.newInstance(); 我可以缓存 msgFactory
HTML5 规范中是否存在无法使用 JAXP 等 XML 库创建的元素?一个例子是未在 XML 中定义的命名 HTML 实体。还有其他不兼容的地方吗? 最佳答案 JAXP 显然只适用于格式良好的 XM
我在使用 XSLT 转换的 Java 应用程序下工作。我在其中有很多 document() 调用,所以可能有 java.lang.OutOfMemory 异常(我实际上有),因为在每次调用 docum
我想知道在使用Java API for XML处理时,哪些对象可以被重用(在相同或不同的文档中),JAXP: DocumentBuilderFactory DocumentBuilder XPath
JAXP 和 JAXB 有什么区别? 最佳答案 JAXP(用于 XML 处理的 Java API)是一个相当过时的总称,涵盖了 JavaSE 中的各种低级 XML API,例如 DOM、SAX 和 S
我想读取一个可能很大的 XML 文件。为了内存效率和易于处理,我想使用 StAX 和 DOM 的混合,如所述 here . 我的输入如下所示(它是 OSM ) .
(问题已更新,见下文) 在 Java 7 上,我使用 JAXP 来解析 XML。 令人惊讶的是,在 XML 模式验证期间,内置实现 xerces 发出 http 请求以解决某些问题(该请求失败)。 问
我是一名优秀的程序员,十分优秀!