2011-10-14 90 views
1

我想在JBOSS AS 7中部署一個簡單的REST示例,但似乎我做錯了一些事情,而且我現在無能爲力。我正在使用Eclipse插件進行部署。在JBoss社區中部署簡單的Jax-RS示例AS 7

我寫的類是下面

@Path("/resources") 
@Consumes({MediaType.APPLICATION_JSON}) 
@Produces({MediaType.APPLICATION_JSON}) 
public class ReceivedImagePersister { 

    @POST 
    @Path("/image") 
    public Response save(String entry) { 
     return Response.ok().build(); 
    } 

} 

然後,我創建一個web.xml

<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>API</display-name> 

    <servlet-mapping> 
     <servlet-name>javax.ws.rs.core.Application</servlet-name> 
     <url-pattern>/resources/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

而且一個JBoss-web.xml中

<jboss-web> 
    <context-root>api</context-root> 
</jboss-web> 

當我部署應用程序並嘗試將一些數據發送到RESTful servlet時,響應始終爲:

(無法找到相對的資源:/完整路徑的圖像:http://localhost:8080/api/resources/image

我必須對配置進行一些更改嗎?

非常感謝。

回答

4

我覺得你的web.xml您的URL模式應該/ *即

<url-pattern>/resources/*</url-pattern> 

應該

<url-pattern>/*</url-pattern> 

我在爲你需要讓javax.ws.rs.core得到什麼。應用程序解析你的網址從http://localhost/api/開始,才能夠檢測到有一個名爲「資源」,有方法「圖像」的資源

現在它正試圖查找名爲「圖像」資源是上下文路徑/ API /資源下/

以下網址可以爲工作方式及其已安裝現在 http://localhost:8080/api/resources/resources/image

+0

非常感謝。這就是它。 –

0

我對JBoss沒有任何經驗,但如果您希望與Java EE 6部署模型保持最佳兼容性,您應該使用Servlet 3.0 web.xml而不是2.4。

0

訪問你聲明什麼正確的URL是:

http://localhost:8080/api/resources/resources/image 

第一個資源是servlet映射,第二個資源是其餘控制器的名稱。

相關問題