Java 从RESTfulWebService调用Servlet时出现问题
我正在使用Jersey开发RESTWeb服务,需要从web服务方法调用servlet来验证用户。运行以下代码时会出现异常:Java 从RESTfulWebService调用Servlet时出现问题,java,web-services,servlets,nullpointerexception,jersey,Java,Web Services,Servlets,Nullpointerexception,Jersey,我正在使用Jersey开发RESTWeb服务,需要从web服务方法调用servlet来验证用户。运行以下代码时会出现异常: @Path("/server") public class WebServer { @Resource private WebServiceContext context; @POST @Path("/post") @Consumes(MediaType.APPLICATION_JSON) public Response
@Path("/server")
public class WebServer {
@Resource
private WebServiceContext context;
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(Track track) throws IOException, ServletException {
ServletContext servletContext = (ServletContext) context.getMessageContext()
.get(MessageContext.SERVLET_CONTEXT); // Here I am getting NPE
HttpServletRequest request = (HttpServletRequest) context.getMessageContext()
.get(MessageContext.SERVLET_REQUEST);
HttpServletResponse response = (HttpServletResponse) context.getMessageContext()
.get(MessageContext.SERVLET_RESPONSE);
request.setAttribute("username", track.getUsername());
request.setAttribute("password", track.getPassword());
servletContext.getRequestDispatcher("/LoginAction").include(request, response);
String loginStatus = request.getParameter("loginStatus");
String Token = request.getParameter("Token");
String result = ""+track;
return Response.status(200).entity(result).build();
}
}
例外情况是:
位于的java.lang.NullPointerException
com.webservices.server.WebServer.createTrackInJSON(WebServer.java:36)
…servletContext为空
请帮助我确定如何在web服务中获取servlet上下文 改用:
使用@Context注释,并注入正确的类。您还可以直接注入servlet请求和响应对象
import jax.ws.rs.core.Context;
@Path("/server")
public class WebServer {
@Context
private ServletContext context;
@Context
private HttpServletRequest request;
@Context
private HttpServletResponse response;
// ...
}
感谢您的回复关于HttpServletRequest,HttpServletResponse如何获取这些对象。
import jax.ws.rs.core.Context;
@Path("/server")
public class WebServer {
@Context
private ServletContext context;
@Context
private HttpServletRequest request;
@Context
private HttpServletResponse response;
// ...
}