我在JBoss 8服务器上收到以下错误。
17:36:07,482 ERROR [io.undertow.request] (default task-22) UT005023: Exception handling request to /user/XMLPreviewer: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com/sun/org/apache/xml/internal/serialize/XMLSerializer
Run Code Online (Sandbox Code Playgroud)
我的pom中具有以下依赖项:
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxp-api</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
<dependency>
<groupId>javax.xml.parsers</groupId>
<artifactId>jaxp-api</artifactId>
<version>1.4.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
您正在寻找麻烦,包括应用程序中的所有jar。
这些jars提供的API和实现存在于JDK(最早可以追溯到Java 5)中,如果您使用它们而不是向应用程序添加其他(可能是过时的)版本,将会发现生活变得更加简单。
此外,Java EE可能会指定对标准XML API(例如,提供JDK的XML API)(例如JAXB 2.2)的进一步扩展,因此可以将此扩展实现透明地提供给您的应用程序。
因此,如果添加以下内容,而不是上面的依赖项集:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该<scope>provided</scope>元素很重要,因为此jar不需要与您的应用程序一起部署。它包含的类由Java EE 7服务器实现提供。
如果添加此依赖项,则还可以丢弃其他依赖项,例如servlet-api,jsp-api,ejb-api等,因为它们都包含在javaee-api依赖项中。
| 归档时间: |
|
| 查看次数: |
10811 次 |
| 最近记录: |