java.lang.NoClassDefFoundError: javax/ws/rs/core/Configuration

匿名 (未验证) 提交于 2019-12-03 08:46:08

问题:

I am implementing rest easy web service and i am using jboss 4.0 but i am getting following exception...

java.lang.NoClassDefFoundError: javax/ws/rs/core/Configuration 

my web.xml is

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>RestfulWebService</display-name> <welcome-file-list>     <welcome-file>index.html</welcome-file> </welcome-file-list> <!-- <servlet>     <servlet-name>HelloServlet</servlet-name>     <load-on-startup>1</load-on-startup> </servlet> --> <!-- <servlet>     <servlet-name>HelloServlet</servlet-name>     <servlet-class>javax.ws.rs.core.Application</servlet-class> </servlet> --> <listener>     <listener-class>    org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap     </listener-class> </listener>  <!-- <context-param>     <param-name>resteasy.scan</param-name>     <param-value>true</param-value> </context-param> -->  <servlet>     <servlet-name>Resteasy</servlet-name>     <servlet-class>         org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher     </servlet-class>     <init-param>         <param-name>javax.ws.rs.Application</param-name>         <param-value>com.websevices.TestService</param-value>     </init-param> </servlet> <!-- <servlet-mapping>         <servlet-name>javax.ws.rs.core.Application</servlet-name>         <url-pattern>/rest/*</url-pattern>     </servlet-mapping> --> <servlet-mapping>     <servlet-name>Resteasy</servlet-name>     <url-pattern>/rest/*</url-pattern> </servlet-mapping> <context-param>             <param-name>resteasy.servlet.mapping.prefix</param-name>             <param-value>/rest</param-value> 


回答1:

From the Exception its clear that The class loader is not able to find the class Configuration (from javax/ws/rs/core/Configuration).

Please check classpath, corresponding JAR file and make sure that the class file exist.



回答2:

It's easy to meet such error when migrating/copying dependencies from servlet based project to standalone. For servlet based project one usually needs dependency with scope = 'provided' relying that servlet provides implementation:

Dependency causing error:

<dependency>     <groupId>javax.ws.rs</groupId>     <artifactId>javax.ws.rs-api</artifactId>     <version>2.0.1</version>     <scope>provided</scope> </dependency> 

But for standalone projects there is no servlet implementation so you need to turn on copy javax.ws.rs-api to classpath. Usually you need just to remove <scope>provided</scope> line and have straightforward dependency:

Fixed dependency:

<dependency>     <groupId>javax.ws.rs</groupId>     <artifactId>javax.ws.rs-api</artifactId>     <version>2.0.1</version> </dependency> 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!