Как заставить джерси и @webservlet работать вместе?
Джерси ResourceConfig:
@ApplicationPath("/*")
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
register(Greetings.class);
}
}
Джерси Ресурс зарегистрирован вresourceConfig:
@Path("/login")
public class Greetings {
@GET
public Response getHelloGreeting(@Context HttpServletRequest httpRequest) {
System.out.println("In the Greetings resource");
String url= "http://"+httpRequest.getServerName()+":"+httpRequest.getServerPort()+httpRequest.getContextPath();
String newURL = url+"/login.jsp";
System.out.println(newURL);
return Response.seeOther(URI.create(newURL)).build();
}
}
веб-сервлет
@WebServlet(name = "LoginServlet", urlPatterns = { "/hello" })
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext servletContext = getServletContext();
System.out.println("inside login servlet");
request.getRequestDispatcher("/login.jsp").forward(request, response);
System.out.println("request forwarded");
}
//other functions not important so deleted
}
Случай 1: при доступе к этим http://localhost:8088/ResponseFilterweb/login
журналам консоли:
In the Greetings resource
http://localhost:8088/ResponseFilterweb/login.jsp (no ui comes)
при доступе к этому http://localhost:8088/ResponseFilterweb/hello
(nothing happens 404 error)
Случай 2: Изменение пути ресурса конфигурации приложения:
@ApplicationPath("/auth")
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
register(Greetings.class);
}
}
при доступе к этому
http://localhost:8088/ResponseFilterweb/auth/login
In the Greetings resource
http://localhost:8088/ResponseFilterweb/login.jsp (Ui comes)
при доступе к этому
http://localhost:8088/ResponseFilterweb/hello
inside login servlet (Ui comes)
userid is
Encoded string
request forwarded
сомнений:
не знаю, почему login.jsp блокируется в первом случае:
почему http://localhost:8088/ResponseFilterweb/login не показывает никакого интерфейса .. я думаю, что это должно прийти?
почему http://localhost:8088/ResponseFilterweb/hello не отображается пользовательский интерфейс?