【发布时间】:2017-07-09 01:22:56
【问题描述】:
我对 JEE 世界比较陌生,所以请多多包涵。
我无法理解本地 Wildfly(版本 10.1.0)服务器抛出的异常。
异常状态:
无法将
.beans.ApplicationBean 字段 .service.rest.ApplicationService.applicationBean 设置为 .beans.ApplicationBean$Proxy$_$$_Weld$EnterpriseProxy$
应用服务器上的实际部署成功,但调用 REST 调用会产生上述异常。
奇怪的是:如果我第二次部署相同的包,调用的 REST 调用不会生成异常,并且应用程序按预期工作。
有问题的课程是:
@Stateless
@LocalBean
public class ApplicationBean {
@Inject
private ApplicationDao applicationDao;
... some methods ...
}
@Path("/applications")
@Stateless
@LocalBean
public class ApplicationService {
@Inject
private ApplicationBean applicationBean;
... methods which use the applicationBean field ...
}
我在 CDI / EJB 方面使用注释的原因是:
-
@Stateless因为我需要在我的 DAO 类中进行交易(出于完整性原因,DAO 类在下面列出) -
@LocalBean因为我正在尝试注入特定的实现类并且没有接口
@Stateless
@LocalBean
public class ApplicationDao {
@PersistenceContext
private EntityManager em;
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
... method ...
}
我不确定它是否与它有关,但 ApplicationService 类位于与 bean 和 dao 不同的模块中。最后,它们一起形成了一个 ear 文件,其中一个共享模块(bean 和 daos)是 ejbModule,服务是 Web 应用程序。
我将非常感谢一些见解 - 干杯!
【问题讨论】:
标签: java jakarta-ee ejb wildfly cdi