我想创建一个包含项目存根的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 \
答案 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
也有资格作为组件定义注释。)