确定类是否是EJB - 字节码分析

时间:2014-04-01 16:14:40

标签: java java-ee ejb bytecode

我正在研究字节码分析项目。我正在使用ASM库。对于其中一个要求,我需要确定.class是EJB还是非EJB。由于EJB有各种版本,我们试图尽可能地将逻辑编写为傻瓜,并且问题可能会感到奇怪。我很清楚它可能无法完全自动化。我试图大致遵循这些步骤:

对于EJB 2.x

  • 首先检查类是否扩展了EJBHomeEJBLocalHome
  • 等特定界面
  • 检查是否有特定方法,例如ejbActivate()ejbPassivate()ejbRemove()
  • 要检查它是否是会话bean,请检查它是否实现了SessionBean接口。

等等

对于EJB 3.x

  • 由于注释,我认为EJB 3.x比EJB 2.x更容易。
  • 我可以检查@Stateless之类的注释来检查它是否是无状态bean
  • 检查注释@Stateful以检查它是否是有状态bean。
  • 或检查是否存在@Remote注释

等等。

这些是我想要检查.class是否是EJB的一些方法。我的问题是,有没有其他方法来检查是否有任何类是EJB,我的意思是我错过了任何重要的事情?请注意,我在EJB方面没有太多经验。

ASM库是否有可能提供此选项?

0 个答案:

没有答案