如果给定项目具有EJB3接口,批处理文件如何检测?

时间:2016-02-02 07:15:37

标签: batch-file ejb websphere ejb-3.1 websphere-8

我想创建一个包含项目存根的JAR文件,因为我将通过外部Java客户端访问该服务。

createEJBStubs在这方面为我提供了很好的帮助

  

对于许多客户端方案,WebSphere®ApplicationServer   实时(JIT)部署功能可动态生成   调用远程EJB所需的RMI-IIOP存根类   3.x业务接口。但是,在某些情况下,JIT部署环境无法动态生成这些环境   类。在这些情况下,必须使用createEJBStubs命令   而是生成并嵌入客户端存根类文件   客户申请。如果您的客户端环境是其中之一   下面,使用createEJBStubs命令:“Bare”Java Standard   Java SE虚拟机(JVM)所在的版本(SE)客户端   客户环境。 WebSphere Application Server容器(Web   来自a的容器,EJB容器或应用程序客户端容器)   早于版本7的版本,或没有Feature Pack for EJB   3.0适用。非WebSphere Application Server环境。

我知道执行此命令时可能遇到的问题之一是 -

  

不支持将createEJBStubs命令与2.x或1.x一起使用   EJB模块打包在独立的JAR文件中。 2.x的存根   或者1.x EJB模块必须包装在独立的JAR文件中   而是使用EJBDeploy工具生成的。如果是createEJBStubs   命令是针对打包在a中的2.x或1.x EJB模块运行的   独立的JAR文件,然后命令发出CNTR9241I消息,和   不生成任何存根。

脚本如何确定脚本提供的arg(JAR)是否包含EJB3类型的接口?

批处理文件位于%WAS_HOME%\ bin \

1 个答案:

答案 0 :(得分:1)

createEJBStubs使用与分析EAR文件中的JAR时使用的逻辑相同的逻辑。如果JAR文件包含ejb-jar.xml,则从那里检查版本。否则,如果JAR文件包含组件定义注释(@Stateless@Stateful@MessageDriven),那么它是EJB版本3+ JAR。否则,它不是EJB JAR文件。

(您使用了ejb-3.0标记和websphere-8标记,但WebSphere Application Server v8实现了EJB 3.1,因此@Singleton也有资格作为组件定义注释。)