【发布时间】:2015-12-05 02:56:15
【问题描述】:
我正在制作一个基于配置文件动态加载模块的应用程序。每个模块都有自己的 servlet 和自己的路径。
它有效,但到目前为止,它只提供我在课堂上用@Path 注释的内容(休息服务),这要归功于ServerProperties.PROVIDER_PACKAGES 属性:
上下文:
ServletContextHandler context = new ServletContextHandler( ServletContextHandler.SESSIONS );
context.setContextPath( "/" );
每个模块/servlet 的初始化如下:
ServletHolder jerseyServlet = context.addServlet( org.glassfish.jersey.servlet.ServletContainer.class, "/" );
jerseyServlet.setInitOrder( 0 );
jerseyServlet.setInitParameter( ServerProperties.PROVIDER_PACKAGES, "com.my.packages.rest.server.root" );
这为我提供了每个模块的 url 路径 - 很棒。
但是我在每个模块的资源/模块名文件夹中也有一些静态的html,我不知道如何服务...
使用 DefaultServlet,我可以这样做:
DefaultServlet defaultServlet = new DefaultServlet();
ServletHolder staticAppServlet = new ServletHolder( "default", defaultServlet );
staticAppServlet.setInitParameter( "resourceBase", "./src/main/resources/modulename/" );
context.addServlet( staticAppServlet, "/path" );
但我不知道如何使用码头ServletHolder。
有什么想法吗?
【问题讨论】:
标签: java jetty javax.ws.rs