我在使用 JBoss AS 7 和使用 EJB3.1 的应用程序时遇到了奇怪的行为。我成功地查找了 bean,但是当我尝试将其转换为它的接口时,抛出了异常。
简而言之代码:
@Local
public interface BusinessObjectsFactory { ... }
@Stateless
@Local(BusinessObjectsFactory.class)
public class JPABusinessObjectsFactory implements BusinessObjectsFactory { ... }
...
Object obj = ctx.lookup("java:app/moduleName/" +
"JPABusinessObjectsFactory!pckg.BusinessObjectsFactory");
Class c = obj.getClass();
System.out.println(c.getName()); // pckg.BusinessObjectsFactory$$$view36
System.out.println(c.getInterfaces()[0].getName()); // BusinessObjectsFactory
BusinessObjectsFactory bof = (BusinessObjectsFactory) obj; //cast exception
有任何想法吗?请注意,需要接口(查找的实现是从配置文件中读取的,并且可能会更改)