我是一名大學生,目前正在開發模塊的Android應用程序。將它連接到服務器以執行登錄等。該部門給了我們一個服務器來使用並指示我們使用Servlet。我寧願做一個寧靜的方式,看起來這是一個行業標準。這是迄今爲止我所編寫的代碼:集成JAX-RS和Java Servlets
import javax.ws.rs.QueryParam;
/**
*
* @author Tom
*/
public class Login {
public boolean doLogin(@QueryParam("email") String email) {
return checkCredentials(email);
}
private boolean checkCredentials(String email){
boolean result = false;
if (email != ""){
try {
result = DBConnection.checkLogin(email);
} catch (Exception e) {
result = false;
}
} else {
result = false;
}
return result;
}
}
我寫了另一個類,DBConnection
,但這似乎工作正常(使用JDBC連接到MySQL數據庫)。
我遇到的問題是,當我運行Web服務器(使用Jetty
和ant
是構建工具),並嘗試通過瀏覽器訪問服務器上的網頁,它只是給了我503,錯誤。我認爲這是因爲我沒有擴展HttpServlet
課程?這裏是他們給了我們一些示例servlet代碼:
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class Product extends HttpServlet
{
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
{
httpServletResponse.setContentType("text/plain");
PrintWriter out = httpServletResponse.getWriter();
out.println("Hello");
out.close();
}
}
他們已經給了我們一個名爲JettyStart.java
文件,當您運行這將啓動Web服務器螞蟻:
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.ServletHttpContext;
public class JettyStart
{
public static void main(String[] args) throws Exception
{
//A server running at http://localhost:8085 is created
Server server = new Server();
server.addListener(":8085");
ServletHttpContext context = (ServletHttpContext) server.getContext("/");
context.addServlet("/path/to/Login", "package.name.Login");
server.start();
}
}
那麼我將如何去將Servlets集成到我的Restful方法中以與服務器/數據庫進行通信?或者我做錯了什麼?
嗨,感謝您的答案。這聽起來比使用ant好,但不幸的是服務器與其他學生共享,所以如果我改變了構建過程,這意味着其他學生將無法使用它。儘管如此,我會進一步研究它,可能會有解決方法或其他方法。 –