如何在webMethods Integration Server和webMethods Designer中添加外部jar以开发java服务

时间:2015-07-22 08:26:24

标签: java eclipse jar webmethods

我想在一些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时我必须采取哪些措施吗?

2 个答案:

答案 0 :(得分:5)

SoftwareAG webMethods Designer需要您将外部JAR添加到:

  1. Integration Server包,位于./packages/<package>/code/jars/./packages/<package>/code/jars/static/文件夹中,具体取决于您是否需要动态加载JAR并且仅可用于拥有包,或者在服务器启动时静态加载并可供所有包使用分别和
  2. 服务开发项目 Designer为Eclipse工作区中的包创建 夹即可。
  3. 您可能还没有完成第二步,这就是您的服务无法编译或出错的原因。

    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文件添加到服务开发项目:

         
        
    1. 打开Project Explorer视图。
    2.   
    3. 展开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页。

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

           

      添加类文件时,请确保保留结构   Java包完好无损。例如,如果要添加   com.accounting.orders.statusClass.class,你必须先   在...中创建comaccountingorders文件夹   classes文件夹如下所示:

           
          
      • classes      
            
        • com      
              
          • accounting      
                
            • orders
            •   
          •   
        •   
      •   
           

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

    6.   
    7. 如果要将jar文件添加到服务开发项目,   将它们从文件系统拖到文件系统的lib文件夹中   Project Explorer视图中的服务开发项目。
    8.   

答案 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,类和库的顺序中的几个位置。