Java 找不到EJB模块

Java 找不到EJB模块,java,jakarta-ee,ejb,Java,Jakarta Ee,Ejb,我是开发新手,我想在javaEE中使用EJB, 我的代码很简单,我想创建一个实例并将其插入DB,然后验证插入, 不幸的是,当我运行客户机时,在查找函数中找不到(没有EJB模块)类,严重的是:EJB6005:没有找到EJB模块 javax.naming.NamingException:在SerialContext[myEnv]中查找“vlibtour.vlibtour\u tour\u management.api.vlibtourmanagement”失败={java.naming.factor

我是开发新手,我想在javaEE中使用EJB, 我的代码很简单,我想创建一个实例并将其插入DB,然后验证插入, 不幸的是,当我运行客户机时,在查找函数中找不到(没有EJB模块)类,严重的是:EJB6005:没有找到EJB模块 javax.naming.NamingException:在SerialContext[myEnv]中查找“vlibtour.vlibtour\u tour\u management.api.vlibtourmanagement”失败={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.url.pkgs=com.sun.enterprise.naming,java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl}[根异常为javax.naming.NameNotFoundException:vlibtour.vlibtour\u tour\u management.api.VlibTourTourManagement未找到]

注意,它在测试junit上运行良好。 下面是我的一些代码:

接口:

@Remote

public interface VlibTourTourManagement {   

String testInsert();

String verifyInsert();

Tour findCustomer(String name);
}
豆子:

}

在客户端:

@EJB public static VlibTourTourManagement sb;
private static EJBContainer ec;
private static Context ctx;

    Tour c;
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(EJBContainer.MODULES, new File("target/classes"));
    ec = EJBContainer.createEJBContainer(properties);
    ctx = ec.getContext();
    try {
        sb = (VlibTourTourManagement) ctx.lookup("vlibtour.vlibtour_tour_management.api.VlibTourTourManagement");
        System.out.println("Inserting Tour... " + sb.testInsert());

        System.out.println("Verifying Tour... " + sb.verifyInsert());

    }catch (Exception e) {
        e.printStackTrace();
    }
@EJB公共静态vlibb;
专用静态EJBContainer ec;
私有静态上下文ctx;
巡回赛c;
映射属性=新的HashMap();
properties.put(EJBContainer.MODULES,新文件(“target/classes”);
ec=EJBContainer.createEJBContainer(属性);
ctx=ec.getContext();
试一试{
sb=(vlibtourmanagement)ctx.lookup(“vlibtour.vlibtour_tour_management.api.vlibtourmanagement”);
System.out.println(“插入巡更…”+sb.testInsert());
System.out.println(“验证巡更…”+sb.verifyInsert());
}捕获(例外e){
e、 printStackTrace();
}

提前感谢。

由于web应用程序看不到ejb,您似乎以错误的方式创建了项目。您是否使用maven?如果是,请确保您添加了ejb依赖项What server(和版本)您正在使用吗?似乎您以错误的方式创建了项目,因为web应用程序看不到ejb您正在使用maven吗?如果是,请确保您添加了ejb依赖项您正在使用的服务器(和版本)?
@Override
public String verifyInsert() {
    Tour c = findCustomer("first tour");
    System.out.println(c.getName()+" "+ c.getId());
    return "inserted correctly";
}

@Override
public Tour findCustomer(final String name) {
    Query q = em.createQuery("select c from TOUR c where c.name = :name");
    q.setParameter("name", name);
    return (Tour) q.getSingleResult();
}
@EJB public static VlibTourTourManagement sb;
private static EJBContainer ec;
private static Context ctx;

    Tour c;
    Map<String, Object> properties = new HashMap<String, Object>();
    properties.put(EJBContainer.MODULES, new File("target/classes"));
    ec = EJBContainer.createEJBContainer(properties);
    ctx = ec.getContext();
    try {
        sb = (VlibTourTourManagement) ctx.lookup("vlibtour.vlibtour_tour_management.api.VlibTourTourManagement");
        System.out.println("Inserting Tour... " + sb.testInsert());

        System.out.println("Verifying Tour... " + sb.verifyInsert());

    }catch (Exception e) {
        e.printStackTrace();
    }