我想在一些Java Service(WebMethod designer 9.7)中使用外部jar。我在Internet文档中看到,我必须将我的jar放在Integration Server上的package / code / jars / path中,以及在eclipse中我的项目的构建路径中。 但我不知道该怎么做。
我试图将我的jar放入$swag_instance$/packages/$package_name$/code/jars
,重启IS,但我有编译错误。
请问您能帮助我了解在使用java服务中的外部jar时我必须采取哪些措施吗?
答案 0 :(得分:5)
SoftwareAG webMethods Designer需要您将外部JAR添加到:
./packages/<package>/code/jars/
或./packages/<package>/code/jars/static/
文件夹中,具体取决于您是否需要动态加载JAR并且仅可用于拥有包,或者在服务器启动时静态加载并可供所有包使用分别和您可能还没有完成第二步,这就是您的服务无法编译或出错的原因。
webMethods服务开发帮助指南(版本9.8)的第312页提供了以下建议:
如果您的Java服务需要其他类来编译,那么您 必须添加它们,作为单个类文件或jar文件, 服务开发项目和Integration Server。 如果您为Java服务设置IS包依赖项 Integration Server和中有类和/或jar文件 需要IS包以便服务可以编译 手动将它们添加到服务开发项目。更多 信息,请参阅&#34;向服务开发添加类 项目&#34;有关添加类的详细信息,请参阅第317页 Integration Server以及Integration Server如何存储包 信息,请参阅webMethods Integration Server Administrator 指南。
然后介绍如何向服务添加类和JAR 开发项目:
将类添加到服务开发项目
如果Java服务需要编译其他类,则必须 将它们添加到以下位置:
- 服务开发项目在本地工作区中 Designer可以编译服务。
- Integration Server,以便服务器可以编译服务。 Designer不会自动传播您添加的类 到Integration Server的服务开发项目;您 必须手动将它们添加到Integration Server。更多 有关向Integration Server添加类的信息,请参阅 有关管理IS包以及如何集成的信息 服务器将IS包信息存储在webMethods Integration中 Server Administrator's Guide。
在向课程添加课程时,请牢记以下几点 服务发展项目:
- 您可以将单个类文件添加到的
classes
文件夹中 服务发展项目。- 如果你有在jar中打包在一起的Java类 您可以将jar文件添加到服务的
lib
文件夹中 发展项目。- 如果您为Java服务设置IS包依赖项 Integration Server和中有类和/或jar文件 需要IS包以便服务可以编译 手动将它们添加到服务开发项目。
将类和jar文件添加到服务开发项目:
- 打开Project Explorer视图。
展开Java服务的服务开发项目。 服务开发项目名称使用以下格式, 其中packageName是IS包的名称 service驻留,hostName是Integration的主机名 服务所在的服务器,portNumber是端口 Integration Server的编号:
<packageName >[<hostName >_<portNumber >]
例如,如果要为其添加类和jar文件 驻留在IS中的
order.orderStatus:checkStatus
服务 与主机一起在Integration Server上打包Accounting
名称和端口号ServerA:5555
,你会扩展 服务开发项目,名称如下:
Accounting[ServerA_5555]
有关详细信息,请参阅&#34;服务开发项目 本地工作区&#34;第308页。
如果要将类文件添加到服务开发中 项目,将它们从文件系统拖到
classes
项目中服务开发项目的文件夹 资源管理器视图。添加类文件时,请确保保留结构 Java包完好无损。例如,如果要添加
com.accounting.orders.statusClass.class
,你必须先 在...中创建com
,accounting
和orders
文件夹classes
文件夹如下所示:
classes
com
accounting
orders
然后将
statusClass.class
文件添加到orders
文件夹。- 如果要将jar文件添加到服务开发项目, 将它们从文件系统拖到文件系统的
醇>lib
文件夹中 Project Explorer视图中的服务开发项目。
答案 1 :(得分:1)
通常建议将jar与使用它的IS包捆绑在一起,以便更容易部署为与其依赖项一起迁移的自包含单元。
因此,将它放在packages/(package name)/code/jars
中就足以让它可以从该IS包的Java服务中调用。
或者,如果您想让jar可用于整个IS的所有Java服务,packages/(package name)/code/jars/static
是一个放置它的好地方。
在这里查看一个有趣的wiki页面,描述webMethods Integration Server Class-Loading机制以及搜索jar,类和库的顺序中的几个位置。