2011-10-14 52 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映射,第二个资源是其余控制器的名称。

相关问题