java - 从Struts2.5 Web服务器访问外部项目静态Web资源

标签 java eclipse struts2 web.xml

我当前正在处理的 lib 包中有一些文件。它需要被多个项目使用,因此我无法将文件直接放入我的网络服务器中。

我希望我的 Struts2.5 Web 服务器能够提供 Lib 包中的一些静态文件。我正在考虑使用 web-fragment.xml 解决方案,但是来自 what I gather from oracle ,只有当我编译我的库包并将其放在我的 META-INF 目录中的某个位置时,这才有效。这很好,但对于任何类型的开发或测试来说确实不方便,因为每次我对 html/js 进行更改时,我都需要进行一个新的构建并将其复制到那里。在我看来,这似乎是错误的解决方案。

如果有一种方法可以通过 xml 配置来做到这一点,我所读到的内容还没有弄清楚。如果我能指出正确的方向,那将会很有帮助。

否则,如果有办法在 Eclipse 中以某种方式执行此操作,那也是可以接受的。作为记录,该项目被 Eclipse 中的其他项目引用为我的 Java 构建路径中的必需项目。

最佳答案

将静态文件放在 Web 内容根目录 ( / ) 下。如果您希望 Struts 提供静态内容,请将其放在 /static 下。 Struts 还可以从类路径提供静态内容,但这似乎不适合您。

阅读我对 Load image in jsp from different URL but same domain 的回答:

You can read more about static content loader and configuration settings in the docs for Static Content.

<小时/>

如果您在另一个 Web 应用程序中打包和部署静态文件,则可以重复使用其他 Web 应用程序中的相同静态文件 .war文件并指定上下文路径以从您的应用程序访问这些文件。它可以从相同的域或不同的域提供服务。

您可以在 Web 存档爆炸时部署带有静态文件的 Web 应用程序,因此您不需要每次部署应用程序时都打包它们,并且如果它是不同的应用程序,则不需要重新部署其他应用程序,除非它们受到文件访问路径的影响。

另一种方法是与 Eclipse 中的其他项目共享具有静态内容的项目,因为 Eclipse 将项目文件复制到最终的 .war在构建过程中,每个网络应用程序都会有自己的共享文件副本。如果您想修改某些共享文件,那么您只需重建/重新部署您正在处理的项目。将此项目作为依赖项的其他项目可以根据需要重建/重新部署。这似乎是最可靠的解决方案,因为修改某些 Web 应用程序不会影响其他 Web 应用程序的运行。

关于java - 从Struts2.5 Web服务器访问外部项目静态Web资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960092/

相关文章:

java - 错误 : Error: No resource found that matches the given name (at 'resource' with value '@xml/device_filter' )

java - Eclipse 中的按钮按下事件 (Android)

java - 如何在生产中引用来自不同子域(或 CDN)的 Assets ?

javascript - struts2中如何使用arraylist显示 "no result found"

java - PreProcessInterceptor 不会拦截我的一些 JAX-RS 资源服务

java - 查找 Java JButton 数组的索引

java - 如何正确使用 java manifold 库中的 Jailbreak 进行 junit 测试?

java - Spring 的带注释的 IOC 对于 Guice 人来说是令人困惑的。帮助启发我

java - 将weblogic服务器添加到eclipse

java - struts2中需要的简单OGNL投影