是否有一个程序解决方案,用于将类路径(除了简单的WEB-INF/classes
之外)添加到Tomcat 9嵌入式服务器中进行servlet 3.1注释扫描?不使用任何XML,WAR或WEB-INF文件夹。
我做到了这一点,但我不知道如何在没有WEB-INF或WAR工件的情况下继续进行:
static void startServer() {
Tomcat server = new Tomcat();
server.setPort(7070);
StandardContext context = (StandardContext) server.addWebapp("", "/");
WebResourceRoot resources = new StandardRoot(context);
resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes", "build/classes/main/java/", "/"));
context.setResources(resources);
server.start();
server.getServer().await();
}
这是我对Jetty的解决方案:
static void startServer() {
final Server server = new Server(7070);
final WebAppContext context = new WebAppContext("/", "/");
context.setConfigurations(new Configuration[] { new AnnotationConfiguration(), new WebInfConfiguration() });
context.setExtraClasspath("build/classes/main");
server.setHandler(context);
server.start();
server.join();
}
答案 0 :(得分:2)
你几乎就在那里,唯一缺少的是你需要提供lib
文件夹的自定义路径(应用程序jar文件所在的位置并加载到Tomcat服务器中)作为{{{ 1}}构造函数调用,即DirResourceSet
有关resources.addPreResources(new DirResourceSet(resources, "/your_own/lib", "build/classes/main/java/", "/"));
的详细信息,请查看API here