#java #servlets #jakarta-ee #wildfly #undertow
Вопрос:
Я пытаюсь перенести некоторые сервлеты из библиотек javax в Джакарту. Изменения довольно просты, но когда я пытаюсь запустить их на Wildfly 23, я получаю это сообщение об ошибке:
Servlet JAX-WS-Service of type class com.sun.xml.ws.transport.http.servlet.WSServlet does not implement javax.servlet.Servlet
Это происходит для этого сервлета (используется для JAXW, но дело не в этом), но также и с моими собственными сервлетами, которые выглядят так:
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
@WebServlet(name = "entrada", loadOnStartup = 1)
public class ServletEntrada extends HttpServlet
Я использую Jakarta servlet-api версии 5.0.0. Сервлеты объявляются в web.xml
файле следующим образом:
<servlet>
<servlet-name>ServletEntrada</servlet-name>
<servlet-class>com.telventi.framework.web.ServletEntrada</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Если я оставлю это объявление включенным web.xml
, я получу ошибку, о которой упоминал, ServletEntrada does not implement javax.servlet.Servlet
.
Если я удалю это объявление из web.xml
файла, сервлет не будет развернут. Несмотря на то, что у него есть @WebServlet
аннотация, которая должна автоматически обнаруживать сервлет Wildfly.
Я предполагаю undertow
, что проверяет каждый сервлет , объявленный в web.xml
файле, если они расширяются javax.servlet.Servlet
, но, конечно HttpServlet
jakarta.servlets.Servlet
, расширение не javax.servlets.Servlet
распространяется .
Я делаю что-нибудь не так?
С уважением.
Ответ №1:
Вам необходимо использовать предварительный просмотр WildFly для поддержки JakartaEE 9, дистрибутив WildFly по умолчанию по-прежнему Java EE / Jakarta EE 8
Комментарии:
1. Да, похоже, это та же проблема, что и с веб-сервисами, я не понимал, что есть связь. Я постараюсь и дам вам знать, если это сработает! Спасибо!