Java 在JBoss社区中将简单的Jax-RS示例部署为7
我试图在JBossAS7中部署一个简单的REST示例,但似乎我做错了什么,现在我不知所措。我正在使用Eclipse插件进行部署 我写的课程如下Java 在JBoss社区中将简单的Jax-RS示例部署为7,java,jboss,java-ee-6,jax-rs,Java,Jboss,Java Ee 6,Jax Rs,我试图在JBossAS7中部署一个简单的REST示例,但似乎我做错了什么,现在我不知所措。我正在使用Eclipse插件进行部署 我写的课程如下 @Path("/resources") @Consumes({MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_JSON}) public class ReceivedImagePersister { @POST @Path("/image") publi
@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>
美国石油学会
javax.ws.rs.core.Application
/资源/*
和一个jboss-web.xml
<jboss-web>
<context-root>api</context-root>
</jboss-web>
应用程序编程接口
当我部署应用程序并尝试向RESTful servlet发送一些数据时,响应总是:
(找不到完整路径的相对图像的资源:)
我必须在配置中进行一些更改吗
提前非常感谢。我没有任何JBoss经验,但如果您希望与Java EE 6部署模型保持最佳兼容性,您可能应该使用Servlet 3.0 web.xml而不是2.4。我没有任何JBoss经验,但如果您希望获得最佳兼容性,您可能应该使用Servlet 3.0 web.xml而不是2.4与Java EE 6部署模型的兼容性。我认为web.xml您的url模式应该/*即
<url-pattern>/resources/*</url-pattern>
/resources/*
应该是
<url-pattern>/*</url-pattern>
/*
我的意思是,您需要让javax.ws.rs.core.Application从开始解析您的url,只有这样,它才能检测到有一个名为“resources”的资源具有方法“image”
现在,它正在尝试查找上下文路径/api/resources/下名为“image”的资源
以下url可能适用于其当前的设置方式
我认为你的web.xml你的url模式应该/*
<url-pattern>/resources/*</url-pattern>
/resources/*
应该是
<url-pattern>/*</url-pattern>
/*
我的意思是,您需要让javax.ws.rs.core.Application从开始解析您的url,只有这样,它才能检测到有一个名为“resources”的资源具有方法“image”
现在,它正在尝试查找上下文路径/api/resources/下名为“image”的资源
以下url可能适用于其当前的设置方式
访问您声明的内容的正确url是:
http://localhost:8080/api/resources/resources/image
第一个资源是servlet映射,第二个资源是rest控制器的名称。访问您声明的内容的正确url是:
http://localhost:8080/api/resources/resources/image
第一个资源是servlet映射,第二个资源是rest控制器的名称