Я хочу код для вызова сервлета из кода Java. Мой код приведен ниже. Сервлету не звонят, - PullRequest
0 голосов
/ 04 июля 2018
package test;
import java.io.ObjectOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class Test {

public static void main(String[] args) {

    URL url;
    try {
        url = new URL("http://localhost:8081/Projectt/ServletTest");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        ObjectOutputStream out = new ObjectOutputStream(conn.getOutputStream());
        out.writeObject("test");
        out.flush();
        System.out.println("------------");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}

Вот мой код сервлета

import java.io.IOException;
import java.io.ObjectInputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ServletTest")
public class ServletTest extends HttpServlet {
     private static final long serialVersionUID = 1L;
     public ServletTest() {
         super();
     }
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    ObjectInputStream in = new ObjectInputStream(request.getInputStream());
    try {
        System.out.println("In get : " + (String) in.readObject());
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    System.out.println("End of servlet");
}
}

Я хочу вызвать сервлет из кода Java. Выше мой код. Порт 8081. Указанный URL-адрес запускается из браузера, но не из моего кода. Только оператор println выполняется из класса Test, а не из TestServlet

1 Ответ

0 голосов
/ 04 июля 2018

Ничего не происходит, пока вы не сделаете какой-либо ввод, то есть получите входной поток HttpURLConnection или не получите код ответа. Вам нужно хотя бы позвонить getResponseCode().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...