我对整个Java EE EJB概念还不熟悉。我已经完成了对EJB的研究,但还没有为我的问题找到解决方案。
案例场景:
我在EAR 1上有远程EJB 1,在EAR 2上有远程EJB 2,其中EJB 2引用了第三方库(XXX.jar)。 EJB1中的方法将通过其bean接口调用EJB2中的方法,该接口将输入发送到第三方库中的方法以进行进一步处理。结果将通过EJB1远程方法反过来反馈给EJB1。
我的问题是当我将包含EJB2远程接口的类库(EJB2.jar)添加到EJB2项目的类路径时。 EJB1项目还将包含第三方jar,因为它位于EJB2.jar中。我怎么能避免这个?第三方jar只应添加到EJB2项目类路径中。
答案 0 :(得分:0)
我不确定你是如何打包的,但你不应该用EJB 2客户端jar打包第三方库/类。因此,根据我认为你所拥有的小信息:
EAR 1 |_lib | |_EJB2Client.jar | |_EJB1.jar EAR 2 |_lib | |_Thirdparty.jar | |_EJB1Client.jar | |_EJB2.jar
所以我不认为你有一个问题,EAR1 / EJB1将引用该第三方jar。如果我理解你的问题。什么声音腥可能是你如何包装所有东西。如果需要Remote EJB,则应将所有客户端类放在EJB-Client jar中。另请注意,如果您在同一个JVM中运行,则不需要使用Remote EJB。