【问题标题】:WebSphere + RAD + TaglibWebSphere + RAD + Taglib
【发布时间】:2013-03-01 18:09:24
【问题描述】:

我在为 WebSphere 7 开发应用程序时遇到问题。设置如下。我有一个基于 maven 的项目,由 RAD 7.5.5.2 开发的多个模块组成

其中一个模块是使用 JSP 并依赖于 taglib 的普通 Web 应用程序(war)。

Taglib 本身是另一个模块 - 纯 java 项目,只有两个文件,taglib 描述符和 META-INF/tags 下的标记文件。

当我构建 taglib jar 并手动将其复制到 Web 应用程序的 WEB-INF/lib 时,标签被正确选择并呈现在页面上。

当我通过 RAD 部署项目时 - 没有拾取 taglib。错误说:

```
com.ibm.ws.jsp.JspCoreException: JSPG0047E: Unable to locate tag library for uri http://juriy.com/myproject/jsp/my-taglib 
```

同样的标签库打包成JAR并添加到WEB-INF/lib中可以完美运行。

当我打开 WebSphere 管理控制台时,我看到 taglib 项目已被 WebSphere 识别。但是它没有打包为 JAR,而是将项目的路径添加到 webapp 类路径中。在

```
Troublehooting -> Class Loader Viewer -> Module - com.ibm.ws.classloader.CompoundClassLoader
```

我看到了我的 taglib 的条目:

```
file:/D:/Data/MyProject/UIComponents/target/classes
```

换句话说,看起来 WS 并不关心在开发周期中将项目打包为 JAR,然后它就没有作为 taglib 被拾取。

有没有办法告诉 RAD(或 WebSphere)“请先将此项目打包为 JAR,然后再将其添加到类路径中”?任何使此设置工作的替代方法也值得赞赏。我不能在开发过程中一直手动复制 jar - 我们都希望事情能够自动运行。

免责声明:我不是 WebSphere 专家(仅与这个野兽打交道一周),我可能错过了一些明显的设置。请提出任何可能解决此问题的建议。

【问题讨论】:

  • 您可以一次创建 jar 并将其作为共享库添加到 websphere。由于您无需每次都部署它,现在它可供所有应用程序访问。
  • 感谢您的建议格雷戈里。我会把它作为最后的手段——如果可能的话,我想把它变成“正确”的方式。
  • 您是否将项目打包到 RAD 内的 EAR 项目中?
  • 生成的工件是 EAR,对。但据我了解,RAD 在开发过程中并未进行实际打包,而是将 WAS 指向正确的目录结构。不过我可能错了。

标签: java jakarta-ee websphere ibm-rad ibm-rad-7.5


【解决方案1】:

据我所知,RAD 是在 Eclipse 平台上制作的。我知道使用 maven,您可以创建构建 jar 文件并放入本地存储库的工件。其他模块可以通过 M2_REPO 变量引用该 jar。然后你坚持使用 maven 并且必须使用 maven 插件来帮助将 maven 集成到 eclipse 中。但请考虑使用project builder and ant 配置项目的选项。然后,您可以在构建时轻松运行 ant 目标,以便在部署之前制作您的 jar。这种技术不仅用于 Eclipse IDE,还用于其他 IDE。在项目构建之前或之后运行 ant 目标是非常宝贵的功能。

【讨论】:

    【解决方案2】:

    将您的 taglib 打包为 maven jar 并将其安装到您的本地 .m2 存储库。然后为您的主项目引用 pom 中的依赖项。它将被拉入包装。如果是为本地开发解析,可能是因为打开了工作空间解析。

    此外,在基于 Maven 的项目中将 jars 添加到 WEB-INF/lib 并不是最佳实践,因为您已经绕过了 maven 的主要目的,即控制构建项目所需的依赖项。

    【讨论】:

      【解决方案3】:

      您是否尝试将 manifest 添加到您的 WAR 中?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 2011-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多