这里写错了?
打包的时候,由于这是两个EJB MODULE,所以都含有各自的WEB-INF目录,有各自的部署描述XML,那么很自然会被打成两个JAR文件,彼此分开应该是:META-INF吧?用SBEAN调用CMP,有没有问题呢,可以直接调用吗?
没有问题,是可以调用的。
关于,你说的区别,
我觉得,
调用是没有区别的。不过,你的部署是有点不同,但其实归根结底,还是一样的。^@^
打包的时候,由于这是两个EJB MODULE,所以都含有各自的WEB-INF目录,有各自的部署描述XML,那么很自然会被打成两个JAR文件,彼此分开应该是:META-INF吧?用SBEAN调用CMP,有没有问题呢,可以直接调用吗?
没有问题,是可以调用的。
关于,你说的区别,
我觉得,
调用是没有区别的。不过,你的部署是有点不同,但其实归根结底,还是一样的。^@^
两个不同的jar包deploy两个ejb(不管是cmp or bmp),你需要注意的是jvm不会管你是cmp or bmp,它关心的是local or remote interface,知道吗?也就是说
1:如果两个都是remote interface,那么打成2个jar包deploy没有问题,调用也没有问题(因为是remote调用啊,这时jvm是用两个classloader),我想你的情况应该是这种,所以调用起来没有任何问题.
2:如果有两个ejb,一个是statefulless,一个是cmp(local interface),注意这里有local了,那么你可以把他们分成两个不同的jar,deploy也没有问题,但是statafulless调用cmp就有问题了,会throw LinkException.
所以如果你的ejb有local interface,你必须把他们打在一个包中,如果你的statefulless也是local interface,你也必须把ejb client + statefulless打在一个ear中!
不知道你清楚了吗?
两个不同的jar包deploy两个ejb(不管是cmp or bmp),你需要注意的是jvm不会管你是cmp or bmp,它关心的是local or remote interface,知道吗?也就是说
1:如果两个都是remote interface,那么打成2个jar包deploy没有问题,调用也没有问题(因为是remote调用啊,这时jvm是用两个classloader),我想你的情况应该是这种,所以调用起来没有任何问题.
2:如果有两个ejb,一个是statefulless,一个是cmp(local interface),注意这里有local了,那么你可以把他们分成两个不同的jar,deploy也没有问题,但是statafulless调用cmp就有问题了,会throw LinkException.
所以如果你的ejb有local interface,你必须把他们打在一个包中,如果你的statefulless也是local interface,你也必须把ejb client + statefulless打在一个ear中!
不知道你清楚了吗?
但是小弟还有话说:
我看书上说:如果客户端和EJB在一个process里面,也就是说,是一个server(我用的WEBLOGIC)的话,就可以local调用。虽然我用的是两个JAR,但是都是部署在一个SEVER里面的啊!,两个jar的区别除了部署不同以外,还有不同???楼上还是没有说明两个jar有什么区别,和二楼矛盾,弄得我更胡涂了◎!!!
要包含哪些jar包。
至于local接口和remote接口的调用和ejb是不是在同一个jar包没有关系,
如果你调用的ejb和你的应用在同一个jvm里面,也就是你说的同一个server,
那么就可以用local接口,如果不是,比如说你调用的是另外一个server下
的ejb,哪就需要remote接口
的文件最好打成同一个jar包,jar1和jar2的package一样,很容易就冲突的