3

我想在一些 Java 服务(WebMethod 设计器 9.7)中使用外部 jar。我在 Internet 文档中看到,我必须将我的 jar 放在 Integration Server 上的包 /code/jars/ 路径中,以及我在 eclipse 中项目的构建路径中。但我不知道该怎么做。

我试图将我的 jar 放入$swag_instance$/packages/$package_name$/code/jars,重新启动 IS,但我有编译时错误。

您能否帮助我了解在 Java 服务中使用外部 jar 时我必须执行哪些操作?

4

2 回答 2

5

SoftwareAG webMethods Designer 需要您将外部 JAR 添加到以下两者:

  1. Integration Server 包,位于./packages/<package>/code/jars/./packages/<package>/code/jars/static/文件夹中,具体取决于您是否需要动态加载 JAR 并仅对拥有的包可用,或者在服务器启动时静态加载并分别对所有包可用,以及
  2. Designer 为 Eclipse 工作区文件夹中的包创建的服务开发项目

您可能还没有完成第二步,这就是您的服务无法编译或出现错误的原因。

webMethods 服务开发帮助指南(版本 9.8)的第 312 页有以下建议:

如果您的 Java 服务需要编译其他类,则必须将它们作为单独的类文件或 jar 文件添加到服务开发项目和集成服务器中。如果您在 Integration Server 中为 Java 服务设置 IS 包依赖项,并且 IS 包中存在所需的类和/或 jar 文件以便可以编译服务,则必须手动将它们添加到服务开发项目中。有关详细信息,请参阅第 317 页上的“将类添加到服务开发项目”。有关将类添加到 Integration Server 以及 Integration Server 如何存储包信息的详细信息,请参阅 webMethods Integration Server 管理员指南。

然后第 317 页描述了如何将类和 JAR 添加到服务开发项目:

向服务开发项目添加类

如果 Java 服务需要编译其他类,则必须将它们添加到以下位置:

  • 本地工作区中的服务开发项目,以便 Designer 可以编译服务。
  • Integration Server 使服务器可以编译服务。Designer 不会自动将您添加到服务开发项目的类传播到集成服务器;您必须手动将它们添加到集成服务器。有关向 Integration Server 添加类的更多信息,请参阅 webMethods Integration Server 管理员指南中有关管理 IS 包以及 Integration Server 如何存储 IS 包信息的信息。

向服务开发项目添加类时,请记住以下几点:

  • 您将单个类文件添加到classes服务开发项目的文件夹中。
  • 如果您有一起打包在 jar 文件中的 Java 类,则将 jar 文件添加到lib服务开发项目的文件夹中。
  • 如果您在 Integration Server 中为 Java 服务设置 IS 包依赖项,并且 IS 包中有类和/或 jar 文件需要编译服务,则必须手动将它们添加到服务开发项目。

将类和 jar 文件添加到服务开发项目:

  1. 打开项目资源管理器视图。
  2. 展开 Java 服务的服务开发项目。服务开发项目名称使用以下格式,其中 packageName 是服务所在的 IS 包的名称,hostName 是服务所在的 Integration Server 的主机名,portNumber 是 Integration Server 的端口号:

    <packageName >[<hostName >_<portNumber >]

    例如,如果您要为 集成服务器上order.orderStatus:checkStatusIS 包中的服务添加类和 jar 文件,并使用主机名和端口号,您可以使用以下名称扩展服务开发项目:AccountingServerA:5555

    Accounting[ServerA_5555]

    有关详细信息,请参阅“本地工作区中的服务开发项目”(第 308 页)。

  3. 如果要将类文件添加到服务开发项目,请将它们从文件系统拖到classes 项目资源管理器视图中服务开发项目的文件夹中。

    添加类文件时,请确保保持 Java 包的结构完整。例如,如果要添加 com.accounting.orders.statusClass.class,则必须先在文件夹内 创建comaccounting、 和文件夹,如下所示:ordersclasses

    • classes
      • com
        • accounting
          • orders

    然后将文件添加到statusClass.class文件orders夹中。

  4. 如果要将 jar 文件添加到服务开发项目,请将它们从文件系统拖到libProject Explorer 视图中的服务开发项目文件夹中。
于 2015-07-23T09:22:30.623 回答
1

建议通常将 jar 与使用它的 IS 包捆绑在一起,这样更容易将其部署为一个独立的单元,并与其依赖项一起迁移。

因此,将其放入packages/(package name)/code/jars该 IS 包的 Java 服务中就足够了。

或者,如果您想使该 jar 可用于整个 IS 中的所有 Java 服务,那么这packages/(package name)/code/jars/static是一个放置它的好地方。

请参阅此处的一个有趣的 wiki 页面,该页面描述了webMethods 集成服务器类加载机制以及按搜索 jar、类和库的顺序排列的几个位置。

于 2015-07-22T17:46:21.300 回答