JBoss8:错误 UT005023 - 对 URL 的异常处理请求
JBoss8: Error UT005023 - Exception handling request to URL
我在 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
我的 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>
您是在自找麻烦,在您的应用程序中包含任何这些 jar。
这些 jar 提供的 API 和实现存在于 JDK(早在 Java 5)中,如果您使用它们而不是添加额外的东西,您会发现生活要简单得多(可能已过时)版本到您的应用程序。
此外,Java EE 可能会指定标准的进一步扩展(JDK 提供)XML API(例如 JAXB 2.2),因此透明地向您的应用程序提供此扩展实现.
因此,如果您添加以下内容,而不是上面的依赖项集:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<scope>provided</scope>
元素很重要,因为这个 jar 不需要与您的应用程序一起部署。它包含的 类 由您的 Java EE 7 服务器实现提供。
如果添加此依赖项,则还可以丢弃其他依赖项,例如 servlet-api、jsp-api、ejb-api 等这些都包含在 javaee-api 依赖项中。
我在 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
我的 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>
您是在自找麻烦,在您的应用程序中包含任何这些 jar。
这些 jar 提供的 API 和实现存在于 JDK(早在 Java 5)中,如果您使用它们而不是添加额外的东西,您会发现生活要简单得多(可能已过时)版本到您的应用程序。
此外,Java EE 可能会指定标准的进一步扩展(JDK 提供)XML API(例如 JAXB 2.2),因此透明地向您的应用程序提供此扩展实现.
因此,如果您添加以下内容,而不是上面的依赖项集:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<scope>provided</scope>
元素很重要,因为这个 jar 不需要与您的应用程序一起部署。它包含的 类 由您的 Java EE 7 服务器实现提供。
如果添加此依赖项,则还可以丢弃其他依赖项,例如 servlet-api、jsp-api、ejb-api 等这些都包含在 javaee-api 依赖项中。