У меня есть образец проекта Maven в Eclipse (Mars) со встроенным причалом v9. Я определил обработчик ресурсов для статических файлов html/javascript и обработчик сервлета для API REST. Я создаю единый кусок жира (пакет оттенков), и он делает все, что я хочу, когда я запускаю банку из проекта homedir. Он обслуживает остальные API и веб-страницы. Из любого другого каталога он обслуживает только REST API. Для страниц HTML сервер причала дает причину, которая не найдена.Встраиваемый Jetty не обслуживает страницы webapp, звонки REST OK
Обработчики вооружившись таким образом:
//REST handler context
ServletContextHandler restHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
restHandler.setContextPath("/");
// Jersey REST handling servlet
ServletHolder jerseyServlet = restHandler.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
// Tell Jersey which REST service class to load....
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", RestHandler.class.getCanonicalName());
// Handler that will handle the request for a given html page
ResourceHandler resourceHandler = new ResourceHandler();
// Configure page handler with login.html as the initial landing page
resourceHandler.setDirectoriesListed(true);
resourceHandler.setWelcomeFiles(new String[]{ "pages/login.html" });
resourceHandler.setResourceBase("src/main/webapp/");
//Add all handlers to the server
Server jettyServer = new Server(8080);
//ConstraintSecurityHandler authenticationHandler = authenticationService(jettyServer);
//authenticationHandler.setHandler(resourceHandler);
HandlerCollection handlerList = new HandlerCollection();
handlerList.setHandlers(new Handler[] { resourceHandler,,
restHandler,
new DefaultHandler(),
});
jettyServer.setHandler(handlerList);
пункт Построить в pom.xml выглядит так:
<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>
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/webapp</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.dastratum.DasConsole.ConsoleMain</Main-Class>
</manifestEntries>
</transformer>
</transformers>
<minimizeJar>false</minimizeJar>
<createDependencyReducedPom>true</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*</exclude>
<exclude>junit:junit</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Любая помощь приветствуется. Благодарю.