2015-12-21 41 views
0

我有一個Maven WebApp項目,我不斷地改變我的servlet類,每當我改變我的servlet類,我有重新運行項目的清潔包和tomcat:運行,如果我不重新運行,它沒有顯示webapp上的變化我在servlet類中更改了什麼,是否有任何快速方法更新我的項目,而不是重新運行項目,因爲它需要大量時間來重新運行。如何更新Maven項目立即web應用的內容?

我使用eclipse ide來運行我的項目,所以請給我一個基於eclipse的解決方案。

想這是我的servlet班組長

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class Login_Bridge 
*/ 
@WebServlet("/abc") 
public class abc extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public abc() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 

     System.out.println("hello"); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     System.out.println("hello1"); 

    } 

} 

想我添加其他的System.out.println(「Hello2」)在我的GET方法,當我刷新瀏覽器我的網頁它亙古不變的表現出任何的變化,但是當我重新運行該項目(清潔包),然後(tomcat:運行),然後它顯示瀏覽器的變化,所以我的問題是,是否有任何其他方法以快速的方式做到這一點,以便我可以快速查看變化。

+0

@jogo我已經更新了我的問題! –

+0

在WEB-INF文件夾內所做的任何更改可能會最終重新部署應用程序本身 –

+0

但我的servlet類不在WEB-INF文件夾內 –

回答

1

您可以使用Eclipse中StackOverflow answer熱部署功能。但是如果你試圖調試你的應用程序,我建議你使用單元測試。

它比熱部署方便多了。

例如:

@Mock 
private HttpServletRequest request; 
@Mock  
private HttpServletResponse response; 

private YourServletClass sut; 

@Before 
public void initTest(){ 
    MockitoAnnotations.initMocks(this); 
    //Init your mocks as yuou wish 
    when(request.getParameter("parameter1")).thenReturn("Param1Value"); 
    when(request.getParameter("parameter2")).thenReturn("Param2Value"); 
    sut = new YourServletClass(); 
} 


@Test 
public void testMyServlet() throws Exception { 
    sut.doPost(request, response); 
    verify(/*....*/); 
}