前言
本人所在项目中,由于我们的系统将业务逻辑单独部署,以下称之为EJB层,和普通的WEB层相对独立。从 WEB 层调用 EJB 层,通过 Command 架构,其包含的 EJB 调用就是事务性质的,所以我们 EJB 层再调用其它第三方提供的 EJB 接口时,就经常会出现一些莫名其妙的错误,以下略作收集。
1 、错误现象(在被调用的 EJB 服务器屏幕上出现):
<2005-1-20 下午 04 时 14 分 46 秒 CST> <Error> <Security> <BEA-090513> <ServerIdentity failed validation, downgrading to anonymous.>
<2005-1-20 下午 04 时 14 分 46 秒 CST> <Error> <JTA> <BEA-110200> <User [<anonymous>] is not authorized to invoke startCommit on a transaction branch.>
分析:
这种异常是跨域传播事务造成的 . 一定要传播事务的话 , 必须设置域信任 , 没有其他办法 . 但是域信任有相关的安全隐患 , 当然对于大部分非关键业务应用来说也无所谓了 .
具体设置方法为, domain node --> View Domain-wide Security Settings --> Configuration --> Advanced --> Enable Generated Cr