我在下面休息了。
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
@Path("/users")
public class UserRestService {
@GET
public Response getUser() {
return Response.status(200).entity("getUser is called").build();
}
}
我不知道服务器如何使用此UserRestService.java文件映射此/ users uri模式。我们是否需要在Web配置中进行配置...?
我的问题: / users URI模式匹配时如何调用UserRestService.java?
提前致谢...
答案 0 :(得分:1)
您需要扩展一个类javax.ws.rs.core.Application;
(至少我这样做)才能注册 JaxRs资源URI 并在 web.xml中提供相应的信息喜欢: -
public class ExtendedClass extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(UserRestService.class);
return classes;
}
}
web.xml中的: -
<servlet>
<description>
JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>package.name.ExtendedClass</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>
/</url-pattern>
</servlet-mapping>
答案 1 :(得分:1)
因为你的jax-ws servlet设置为响应应用程序中的特定url,如下所示
<servlet>
<servlet-name>jaxws-servlet</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSSpringServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jaxws-servlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
答案 2 :(得分:1)
在基于REST
的架构中,一切都是资源。通过基于HTTP标准方法(e.g., POST, GET, PUT or DELETE)
的公共接口访问资源。在您的Web应用程序的org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
中提到的web.xml
servlet类,其中包含所有JAX-RS
根资源和提供程序。
使用/*
url-pattern,所有资源都将传递给RESTeasy
servlet。
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
您会想知道RESTeasy
如何了解我使用@Path
注释的课程,因此有另一种配置让RESTeasy
了解您的资源,您必须在web.xml
即
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
因此,当请求来自/users
时,org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
serrvlet会识别资源类或类方法将为其请求的URI路径,并在您的情况下调用它UserRestService
。< / p>
希望有所帮助:)