【问题标题】:Is Struts 2 available as an OSGi bundle?Struts 2 是否可以作为 OSGi 包提供?
【发布时间】:2009-05-21 09:04:41
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java struts osgi


    【解决方案1】:

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

    例如,如果您下载 struts2-core-2.1.6.jar,将其解压缩并查看 META-INF/MANIFEST.MF,您会发现它确实包含 OSGI 标头(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 应用程序中使用它们 - 但理论上您至少可以引用它们并做“东西”! :)

    【讨论】:

    • 实际上,这意味着是的,Struts 可以作为 OSGi 包提供:)
    • Spring 存储库 (www.springsource.com/repository) 始终是查找已使用正确 OSGi 标头包装的常见 Java 库的好地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2013-10-14
    • 2017-05-27
    相关资源
    最近更新 更多