Перепробовал различные примеры запуска и юза jetty-maven-plugin.
Есть примеры работают, есть не работают.
Пример с мэппингом, через web.xml, почему-то не работает.
Сервер запускается, но при переходе на страницу в браузере, по пути адреса HelloWorldServlet сервлета выдаёт 404.
(UPD: исправлено спасибо Dmitry Roo
Dmitry Roo.. адрес прописан, то helloWorldServlet. )
При заходе на localhost выдаёт No context on this server matched or handled this request.
(При заходе на localhost:8080/mySimpleApp/ - всё верно показывает, т.е. то что сгенерено с index.jsp.)
(UPD: оказывается это, не совсем ошибка, т.е. Jetty это выдаёт, что-то вроде.. что на данный адрес ничего не указанно в настройках сервака.
взято тут)
Так же выдаёт ошибку javax.servlet.AsyncContext scanned from multiple locations - и это странно ведь для работы сервлетов нужна dependency: javax.servlet-api, но при её добавлении вот такая ошибка при запуске сервера.
(UPD: поменял на зависимость jetty-server, и ошибка javax.servlet.AsyncContext scanned from multiple locations, пропала.)
Сам проект:
Структура проекта:
HelloWorldServlet.java
public class HelloWorldServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().println("Hello World! From Servlet");
}
}
web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>basePkg.servlets.HelloWorldServlet</servlet-class>
</servlet>
<!-- привязываем его к адресу -->
<servlet-mapping>
<!-- при переходя по адресу /helloWorldServlet
Jetty - перенаправит запрос на сервлет HelloWorldServlet -->
<!-- в метод doGet(..) -->
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/helloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>simpleApp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>simpleApp Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
<build>
<finalName>simpleApp</finalName>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.34.v20201102</version>
<configuration>
<jvmArgs>-Ddebug=true</jvmArgs>
<httpConnector>
<port>8080</port>
</httpConnector>
<webApp>
<contextPath>/mySimpleApp</contextPath>
</webApp>
</configuration>
</plugin>
</plugins>
</build>
</project>
index.jsp - там ничего интересного, внутри html теги