我试图在JBOSS AS 7中部署一个简单的REST示例,但似乎我做错了什么,现在我一无所知。我正在使用Eclipse插件进行部署。
我编写的类如下所示
@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的相对: /image的资源)
我需要在配置中做一些更改吗?
在此之前非常感谢。
发布于 2011-10-14 15:17:09
我认为你的web.xml,你的url模式应该是/*,即
<url-pattern>/resources/*</url-pattern>应该是
<url-pattern>/*</url-pattern>我的意思是,您需要让javax.ws.rs.core.Application从http://localhost/api/开始解析您的url,然后它才能检测到有一个名为"resources“的资源,该资源具有方法"image”
现在,它正在尝试查找上下文路径/api/resources/下的名为"image“的资源。
下面的网址可能适用于它现在的设置方式http://localhost:8080/api/resources/resources/image
发布于 2011-10-14 11:49:05
我没有任何使用JBoss的经验,但是如果您希望与JavaEE6部署模型保持最好的兼容性,那么您可能应该使用Servlet3.0 web.xml而不是2.4。
发布于 2014-09-10 00:47:47
用于访问您声明的内容的正确url为:
http://localhost:8080/api/resources/resources/image第一个资源是servlet映射,第二个是rest控制器的名称。
https://stackoverflow.com/questions/7762067
复制相似问题