我想在某些Java服务(WebMethod designer 9.7(中使用外部jar。我在 Internet 文档中看到,我必须将我的 jar 放在集成服务器上的包/code/jars/路径中,以及 eclipse 中项目的构建路径中。但我不知道该怎么做。
我试图将我的 jar 放入 $swag_instance$/packages/$package_name$/code/jars
,重新启动 IS,但我有编译时错误。
您能否帮助我了解在 java 服务中使用外部 jar 必须执行哪些操作才能执行此操作?
SoftwareAG webMethods Designer 需要您将外部 JAR 添加到以下两个:
- 集成服务器软件包,位于
./packages/<package>/code/jars/
或./packages/<package>/code/jars/static/
文件夹中,具体取决于您是需要动态加载 JAR 并且仅对所属软件包可用,还是需要在服务器启动时静态加载并分别对所有软件包可用,以及 - 服务发展项目设计器在 Eclipse 工作区中为包创建的文件夹。
您可能尚未完成第二步,这就是您的服务无法编译或出现错误的原因。
webMethods 服务开发帮助指南(版本 9.8(的第 312 页提供了以下建议:
如果您的 Java 服务需要其他类来编译,则 必须将它们添加为单个类文件或 jar 文件, 到服务开发项目和集成服务器。 如果为 Java 服务设置 IS 包依赖项 集成服务器,并且 需要 IS 包才能编译服务,您必须 手动将它们添加到服务开发项目中。欲了解更多信息 信息,请参阅"将类添加到服务开发 项目",第 317 页。有关将类添加到 集成服务器以及集成服务器存储包的方式 信息,请参见 webMethods 集成服务器管理员的 指导。
然后,第 317 页介绍如何向服务添加类和 JAR开发项目:
向服务开发项目添加类
如果 Java 服务需要其他类来编译,则必须 将它们添加到以下位置:
将
- 本地工作区中的服务开发项目,以便 设计器可以编译服务。
- 集成服务器,以便服务器可以编译服务。 设计器不会自动传播您添加的类 到集成服务器的服务开发项目;你 必须手动将它们添加到集成服务器。欲了解更多信息 有关将类添加到集成服务器的信息,请参见 有关管理 IS 包以及如何集成的信息 服务器将 IS 包信息存储在 webMethods 集成中 服务器管理员指南。
类添加到 服务开发项目:
- 将单个类
classes
文件添加到 服务开发项目。- 如果您有打包在 jar 中的 Java 类 文件,将 JAR 文件添加到服务的
lib
文件夹中 开发项目。- 如果为 Java 服务设置 IS 包依赖项 集成服务器,并且 需要 IS 包才能编译服务,您必须 手动将它们添加到服务开发项目中。
将类和 jar 文件添加到服务开发项目:
- 打开"项目资源管理器"视图。
展开 Java 服务的服务开发项目。 服务开发项目名称使用以下格式, 其中包名称是 IS 包的名称,其中 服务驻留,主机名是集成的主机名 服务所在的服务器,端口号是端口 集成服务器编号:
<packageName >[<hostName >_<portNumber >]
例如,如果要为 驻留在 IS 中的
order.orderStatus:checkStatus
服务 与主机一起在集成服务器上Accounting
软件包 名称和端口号ServerA:5555
,您将展开 具有以下名称的服务开发项目:
Accounting[ServerA_5555]
更多信息请参阅"服务开发项目"中的 本地工作区",第 308 页。
如果要将类文件添加到服务开发中 项目,将它们从文件系统拖到
classes
项目中服务开发项目的文件夹 资源管理器视图。添加类文件时,请确保保留 Java 包完好无损。例如,如果要添加
com.accounting.orders.statusClass.class
,你必须先 在 中创建com
、accounting
和orders
文件夹classes
文件夹,如下所示:
classes
com
accounting
orders
然后将
statusClass.class
文件添加到orders
文件夹中。- 如果要将 jar 文件添加到服务开发项目, 将它们从文件系统拖到
lib
"项目资源管理器"视图中的服务开发项目。
建议通常将 jar 与使用它的 IS 包捆绑在一起,以便更轻松地作为与其依赖项一起迁移的独立单元进行部署。
因此,将其放在packages/(package name)/code/jars
中应该足以使其可用于从该 IS 包的 Java 服务中调用。
或者,如果你想让 jar 可用于 IS 中的所有 Java 服务,packages/(package name)/code/jars/static
是一个很好的放置位置。
在这里看到一个有趣的 wiki 页面,描述了 webMethods 集成服务器类加载机制以及搜索 jar、类和库的顺序中的几个位置。