Как установить Java EE SDK?

Я освещаю главу об университете, в которой я перехожу к сервлетам. Книга требует, чтобы я скопировал фрагмент кода и запустил его в cmd. Он не запускается в cmd, и в главе неопределенно объясняется, как я могу установить Java EE. Вот код и ошибка:

      import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class NameServlet extends HttpServlet {
    
    public static void main(String[] args) {

    }

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<body style=’background-color: lightyellow’>");

        String name = "Wow, this servlet works great!!";
        out.println("Name: " + name);
        out.println("</body>");
        out.println("</html>");
        out.close();
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        doGet(request, response);
    }
}

Ошибка:

2 ответа

Проблема в том, что вы используете Apache Tomcat 10, в котором используется последняя версия Jakarta EE (версия 9, преемница Java EE 8). Большое изменение в Jakarta EE 9 состоит в том, что пространство имен своих пакетов сменилось на. Вам либо нужно использовать Apache Tomcat 9 (или более раннюю версию, либо другой контейнер сервлетов Java EE, который все еще использует Java EE 8 или более раннюю версию и пространство имен), либо переключиться на использование нового пространства имен Jakarta EE (в вашем случае пакеты jakarta.servlet и jakarta.servlet.http).

Как упоминалось на странице загрузки Tomcat 10 :

Пользователи Tomcat 10 и более поздних версий должны знать, что в результате перехода с Java EE на Jakarta EE в рамках передачи Java EE в Eclipse Foundation основной пакет для всех реализованных API изменился с javax.* к jakarta.*. Это почти наверняка потребует изменения кода, чтобы позволить приложениям перейти с Tomcat 9 и более ранних версий на Tomcat 10 и более поздних версий.

Думаю, первое, что вам нужно сделать, это понять, что такое сервлеты и как они работают.

Вы можете начать с документации по технологии сервлетов Java .

По крайней мере, прочтите введение, так как на самом деле лучше сначала понять (1) что такое сервлет, (2) как он работает (по крайней мере, на абстракции более высокого уровня) и (3) что вам нужно, чтобы это сделать работай.

Ваш код даже не будет компилироваться, не говоря уже о воспроизводимости; тем не менее, я бы все же дал вам несколько общих моментов:

  1. Вам понадобится соответствующий .jarфайлы в пути к классам (добавьте зависимость от maven или выберите другой способ включения внешних jars);

  2. Затем вы должны собрать / упаковать свое приложение сервлетов как .war file, а затем разверните этот файл в контейнере сервлетов, например Tomcat;

  3. Есть способ запустить Tomcat программно , но обычно это не лучший подход, так как вы можете пропустить многие важные конфигурации.

Другие вопросы по тегам