首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参考几个JavaBeans企业

参考几个JavaBeans企业
EN

Stack Overflow用户
提问于 2018-01-23 02:11:42
回答 1查看 50关注 0票数 0

我在编写EJB应用程序时遇到了一个问题。我寻找了一个解决方案,但我仍然遇到了glassfish的相同问题:

代码语言:javascript
复制
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,我应该做些什么才能获得正确的结果

代码语言:javascript
复制
@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

代码语言:javascript
复制
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类

代码语言:javascript
复制
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;
    }


    }
EN

回答 1

Stack Overflow用户

发布于 2018-01-23 17:00:42

您可以在servlet中使用@Inject来注入bean。而且您不需要定义beanName。只需这样做:

代码语言:javascript
复制
@Inject
private ModuleServiceLocal moduleServiceLocal;
@Inject
private TeacherServiceLocal teacherServiceLocal;
[...]

您将在bean ModuleServiceImpl中实现接口ModuleServiceLocal,以便CDI能够通过该接口找到类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48387789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档