【发布时间】:2019-09-21 02:26:06
【问题描述】:
我知道here 和here 有类似的问题。然而恕我直言,这个问题还没有完全解决,或者至少它对我来说仍然不能顺利工作:(
需要什么:
我想构建一个 JAR 打包库,它将像多个 WebApp 中的共享组件一样使用,在其中引入服务器逻辑以及相关的 UI(Web 组件)。想一想 UserService 从服务器端的角度为 login 和 signup 调用提供 servlet/资源,同时从客户端为整个生态系统中的任何 WebApp 提供端到端解决方案的 UI 组件。
到目前为止:
似乎这个要求完全由 Servlet 3.0 规范中的一个特性解决,该特性处理在路径 META-INF/resources 下的 JAR 中找到的 servlet Web 资源。
我似乎完全按照它说的做了,在根目录下构建具有META-INF/resources/ui-commons/... 的ui-components.jar,并在web.xml 中配置以下内容:
<servlet>
<servlet-name>ui-commons</servlet-name>
<servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
<init-param>
<param-name>relativeResourceBase</param-name>
<param-value>/WEB-INF/lib/ui-components.jar!META-NF/resources</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ui-commons</servlet-name>
<url-pattern>/ui-commons/*</url-pattern>
</servlet-mapping>
此定义在默认 servlet 定义之前,像往常一样为 WAR 中的其他常规 WebApp 资源提供服务。
然而,对该 JAR 中资源的任何请求都以 404 告终。
Servlet 版本为3.1。
码头9.4.
它不是嵌入式 Jetty,没什么花哨的,但请注意下面关于 maven 插件的通知。
注意:
这可能与我目前正在尝试使用jetty-maven-plugin 运行整个设置这一事实有关,它正在从源中提供资源。
- 我已尝试手动将上述 JAR 放入
src/main/resources/WEB-INF/lib...- 没有成功
【问题讨论】:
标签: java servlets jar resources jetty