【发布时间】:2018-01-22 18:11:41
【问题描述】:
我在编写 EJB 应用程序时遇到问题。我搜索了一个解决方案,但 glassfish 仍然存在同样的问题:
cannot Deploy EducationPortal
deploy is failing=Error occurred during deployment: Exception while deploying the app [EducationPortal] :
Warning : Unable to determine local business vs. remote business designation for EJB 3.0 ref Local ejb-ref
name=com.portal.education.servlet.ModuleController/moduleServiceLocal,Local 3.x
interface =com.portal.education.service.Module.ModuleServiceLocal,ejb-
link=ModuleServiceImpl,lookup=,mappedName=,jndi-name=,refType=Session.
Please see server.log for more details.
为了使用某些方法,我必须在同一个 servlet 中引用多个 EJB 我应该怎么做才能得到正确的结果
@EJB (beanName = "ModuleServiceImpl")
private ModuleServiceLocal moduleServiceLocal;
@EJB(beanName = "TeacherServiceImpl")
private TeacherServiceLocal teacherServiceLocal;
@EJB(beanName = "LevelServiceImpl")
private LevelServiceLocal levelServiceLocal;
@EJB(beanName = "SubjectServiceImpl")
private SubjectServiceLocal subjectServiceLocal;
接口 ModuleServiceLocal
import java.util.List;
import javax.ejb.Local;
import com.issatso.portal.education.domain.*;
import com.issatso.portal.education.domain.Module.Id;
@Local
public interface ModuleServiceLocal {
Module find(Id idModule);
List<Module> findAll();
void delete(Id idModule);
Module save(Module object);
}
类 ModuleServiceImpl
import java.util.List;
import javax.ejb.Singleton;
import javax.inject.Inject;
import com.issatso.portal.education.dao.module.ModuleDao;
import com.issatso.portal.education.domain.Module.Id;
import com.issatso.portal.education.domain.Module;
@Singleton
public class ModuleServiceImpl implements ModuleServiceLocal {
@Inject
private ModuleDao dao;
public Module find(Id idModule) {
return (Module) this.dao.find(idModule);
}
public List<Module> findAll() {
return this.dao.findAll();
}
public void delete(Id idModule) {
this.dao.delete(idModule);
}
public Module save(Module object) {
String action = (object.getIdModule()!= null) ? "UPDATED" : "CREATED";
Module Module = (com.issatso.portal.education.domain.Module) this.dao.save(object);
return Module;
}
}
【问题讨论】:
-
可能重复(或类似于)https://stackoverflow.com/questions/7089670/ejb reference in deployment descriptor without annotations 虽然我知道它与部署描述符无关,因为这些是注释。
-
不是同一个问题,因为当我只引用一个 ejb 时它工作得很好
-
请添加您的
ModuleServiceLocal和ModuleServiceImpl的代码。 -
@unwichtich 我添加它
标签: jakarta-ee glassfish ejb