2015-01-14 99 views
4

我採取其他簡單的網絡服務,我使用JBoss 4.0,但我得到以下異常......java.lang.NoClassDefFoundError:使用javax/WS/RS /核心/配置

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

我的網頁。 XML是

<?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> 


+0

做你添加的jar文件javax.ws.rs-api.jar中的lib文件夾? – robin

回答

2

從異常的清楚的類加載器無法找到類配置(從的javax/WS/RS /核心/組態)。

請檢查類路徑,對應的JAR文件並確保類文件存在。

+0

jar文件丟失了......謝謝 – msg

+1

這是最簡單的責任方式。瞭解爲什麼開發人員可能會犯錯,什麼是根本原因 - 更重要 – Alfishe

13

從基於servlet的項目遷移/複製依賴關係到獨立時,很容易遇到這樣的錯誤。對於基於Servlet的項目一個通常需要與範圍依賴=「提供」靠這個servlet提供實現:

依賴導致錯誤:

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

但對於獨立的項目沒有servlet實現,所以你需要打開將javax.ws.rs-api複製到類路徑。通常你只需要刪除<範圍>提供< /範圍>線,並有直接的相關性:

固定的依賴性:

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

這正是我的情況,這個解決方案正是我的解決方案。謝謝。 – user4052054