这是这个问题的后续。
我也有同样的情况,并且认为我已按照 Joakim 的答案和 EmbedMe 代码中的说明进行操作。我尝试使用 -X 开关运行 exec:java,但看不到与扫描 servlet 相关的任何内容。我还尝试为 org.eclipse.jetty.annotations.AnnotationConfiguration 设置 LEVEL=DEBUG
但运气不佳。 Servlet 在 Java 8 上运行良好。
一切都编译完毕,服务器以 mvn exec:java 启动并显示欢迎屏幕,但所有 servlet 返回 404
这是我的主要课程:
public static void main(String[] args) throws Exception {
// Create a server that listens on port 8080.
int port = Integer.parseInt(System.getenv().getOrDefault("PORT", "8080"));
String host = System.getenv("HOST");
Server server;
if (host != null)
server = new Server(new InetSocketAddress("dev.ourwines.com", port));
else
server = new Server(port);
WebAppContext context = new WebAppContext();
context.setContextPath("/");
context.setWelcomeFiles(new String[]{"index.html"});
context.setParentLoaderPriority(true);
URL webAppDir =
Main.class.getClassLoader().getResource("META-INF/resources");
System.out.println("webAppDir " + webAppDir);
context.setResourceBase(webAppDir.toURI().toString());
context.setParentLoaderPriority(true);
server.setHandler(context);
System.out.println("Configuration discovered? " + context.isConfigurationDiscovered());
System.out.println("getBaseResource " + context.getBaseResource());
String [] classes = context.getConfigurationClasses();
for (int i = 0; i<classes.length; i++)
System.out.println("getConfigurationClasses " + classes[i]);
// server.setDumpAfterStart(true);
server.start();
}
我认为根本原因是胖罐的结构。我们还切换到 Tomcat 并让这部分工作。