java - Struts 2 是否可以作为 OSGi 包使用?

标签 java struts osgi

我有一个服务器应用程序,它包含多个 OSGi 包,一些是我的,一些是第三方的。其中一个 bundle 提供了一个使用 Struts 的 Web 前端。必要的 Struts 库位于 Web 前端包中。

现在我想添加第二个包,它提供另一个 Web 前端,具有不同的依赖项和非常不同的用例。我也想为该 bundle 使用 Struts,但我不想将相同的库放入两个 bundle 中。

使用 OSGi,将 Struts 库分离成它们自己的包并从我的两个包中使用它应该没有问题。但是,我找不到以这种方式打包的 Struts。

一些快速谷歌搜索并查看 the Struts homepage没有产生任何东西。我可以为 Struts 找到一个插件来在 Struts 中运行 OSGi 容器,但这不是我想要的。

最佳答案

查看 http://repo2.maven.org/maven2/org/apache/struts/struts2-core/2.1.6/ 上的当前 struts bundle .

例如,如果您下载 struts2-core-2.1.6.jar,将其解压并查看 META-INF/MANIFEST.MF,您会发现它确实包含 OSGI header (Import-Package、Export-Package , 捆绑-*):

C:\TMP\META-INF>more MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: 1.5.0_10 (Sun Microsystems Inc.)
Built-By: musachyb
Build-Jdk: 1.5.0_10
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Import-Package: com.opensymphony.xwork2;version="2.1",com.opensymphon
 <SNIP>
Bnd-LastModified: 1231185746365
Export-Package: org.apache.struts2.views.xslt;uses:="javax.servlet.ht
Bundle-Version: 2.1.6
 <SNIP>
Bundle-Description: Apache Struts 2
Bundle-Name: Struts 2 Core
Bundle-DocURL: http://www.apache.org
Bundle-ManifestVersion: 2
Bundle-Vendor: Apache Software Foundation
Bundle-SymbolicName: org.apache.struts.struts2-core
Tool: Bnd-0.0.255

不知道您如何在 OSGi 应用程序中使用它们 - 但理论上您至少可以引用它们并做一些“事情”!! :)

关于java - Struts 2 是否可以作为 OSGi 包使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/892000/

相关文章:

java - 从 Java 检索架构

java - 无法从字符串转换为字节数组

java - 在 Struts 中使用复选框

osgi - 为什么我无法从 OSGi/RCP/EclipseLink 应用程序加载 persistence.xml?

java - sun.reflect.generics.reflectiveObjects.NotImplementedException 和 org.apache.commons.lang3.NotImplementedException 之间有什么区别

java - 相似的并发任务,运行时间差异很大(Java)

java - 我的 struts Action 类出错

java - 使用 java/j2ee 从其他服务导入 gmail、yahoo、msn 等联系人

java - 以编程方式更改 OSGi 包导入

java - 动态创建和配置具有依赖关系的 OSGi 服务