Jakarta ee 如何使用企业应用从我的Web应用访问本地EJB模块

Jakarta ee 如何使用企业应用从我的Web应用访问本地EJB模块,jakarta-ee,ejb,Jakarta Ee,Ejb,我有JSF托管bean(它的名称=indexbean1),其代码如下: package ir.ac.imamreza.Client; import ir.ac.imamreza.common.ProductServiceLocal; import javax.ejb.EJB; import javax.inject.Named; import javax.enterprise.context.RequestScoped; import javax.naming.InitialCon

我有JSF托管bean(它的名称=indexbean1),其代码如下:

 package ir.ac.imamreza.Client;

 import ir.ac.imamreza.common.ProductServiceLocal;
 import javax.ejb.EJB;
 import javax.inject.Named;
 import javax.enterprise.context.RequestScoped;
 import javax.naming.InitialContext;

 /**
 *
 * @author Avarcom
 */
 @Named(value = "indexbean1")
 @RequestScoped
 public class Indexbean1 {
 private String name;
 private int price;
 private int count;
 private String desc;

    public int getCount() {
        return count;
    }

    public String getDesc() {
        return desc;
    }

    public String getName() {
        return name;
    }

    public int getPrice() {
        return price;
    }



    public void setCount(int count) {
        this.count = count;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPrice(int price) {
        this.price = price;
    }


    @EJB
    private  ProductServiceLocal ProductService1;
    public void  Add()         
    {
        ProductService1.Add(name,price, count, desc);
    }

    public Indexbean1() {
    }
 }
我有一个类,它在我的车间模块中具有类“ProductServiceLocal”的本地接口,如下所示:

package ir.ac.imamreza.common;

 import java.util.List;
 import javax.ejb.Local;

 /**
 *
 * @author One God
 */
 @Local
 public interface ProductServiceLocal {

    List<Product> getallproduct();
    public int BuyProduct(long id,long number);
    public void Add(String name, int price,int count,String desc);

 }
  ///////////////////////////
我添加了EJB和WEB应用程序以访问我的本地方法(ADD),但当我不想部署我的应用程序时,我遇到了以下错误:

SEVERE: Exception while deploying the app [WebClient] : Cannot resolve reference Local ejb-ref name=ir.ac.imamreza.Client.Indexbean1/ProductService1,Local 3.x interface =ir.ac.imamreza.common.ProductServiceLocal,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session
..
我认为我的Web应用程序无法连接到EJB,针对这个问题,我在一个企业应用程序中添加了Web应用程序和EJAB,但我再次面临这些错误, 请帮助我,谢谢你


致以最诚挚的问候

错误很明显。在JSF中,您正在尝试一种不存在的基于字段的EJB注入

现在,这里是基于字段的注入的规则:

对于基于字段的资源注入,JNDI名称解析为(包) +Classname)/(EJB注入变量名),它会尝试在本地应用程序(war、ear..)中找到它。因此,在这种情况下,它正在得到解决 发送至(ir.ac.imamreza.Client)。(Indexbean1)/ProductService1,但不发送至 存在于你的耳朵或战争中

问候 拉维

SEVERE: Exception while deploying the app [WebClient] : Cannot resolve reference Local ejb-ref name=ir.ac.imamreza.Client.Indexbean1/ProductService1,Local 3.x interface =ir.ac.imamreza.common.ProductServiceLocal,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session
..