Java 如何在EJB的jUnit中从上下文获取bean?

Java 如何在EJB的jUnit中从上下文获取bean?,java,junit,ejb,Java,Junit,Ejb,我正在尝试创建EJB控制器DB对象的测试(用于实验室)。我的问题是在启动过程中创建对上下文的查找: javax.naming.NameNotFoundException:未找到名称“global/Lab45r ejb/BookBean!pl.polsl.Lab45r.book.BookBean”。 我在Maven项目中使用Java。 起始代码: public class BaseScenarioTest { private static EJBContainer container;

我正在尝试创建EJB控制器DB对象的测试(用于实验室)。我的问题是在启动过程中创建对上下文的查找:
javax.naming.NameNotFoundException:未找到名称“global/Lab45r ejb/BookBean!pl.polsl.Lab45r.book.BookBean”。
我在Maven项目中使用Java。 起始代码:

public class BaseScenarioTest {

    private static EJBContainer container;
    private static BookBean bookBean;
    private static LibraryBean libraryBean;

    private static BookTest bookTest;
    private static LibraryTest libraryTest;

    private Integer bookId;
    private Integer libraryId;

    @BeforeClass
    public static void initOnce() throws NamingException {
        Properties properties = new Properties();

        properties.put("xyz", "new://Resource?type=DataSource");
        // These properties (UserName, Password, JdbcUrl) should point
        // to your database
        properties.put("xyz.UserName", "root");
        properties.put("xyz.Password", "root");
        properties.put("xyz.JdbcUrl",
                "jdbc:mysql://localhost:3306/lab");
        properties.put("xyz.JdbcDriver", "com.mysql.cj.jdbc.Driver");
        properties.put("xyz.JtaManaged", "true");
        properties.put("xyz.ConnectionProperties",
                "useSSL=false;allowPublicKeyRetrieval=true");
        container = EJBContainer.createEJBContainer(properties);
        bookBean = (BookBean) container.getContext().lookup("java:global/Lab45R-ejb/BookBean"); //<-- here it fails
        libraryBean = (LibraryBean) container.getContext().lookup("java:global/Lab45R-ejb/LibraryBean");

        libraryTest = new LibraryTest();
        bookTest = new BookTest();
    }

...

-我还有一个额外的问题,这个测试在构建应用程序时不会自动启动。--我通过更改类的名称来解决这个问题。

我会尝试使用“java:global/classes/LibraryBean”。我也有类似的方法。谢谢,无论如何,如果我没记错的话,我的问题是因为遗漏了大写字母;)
javax.naming.NameNotFoundException: Name "global/Lab45R-ejb/BookBean" not found.
    at org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:199)
    at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:151)
    at org.apache.xbean.naming.context.ContextFlyweight.lookup(ContextFlyweight.java:55)
    at package.lab45r.scenario.BaseScenario.initOnce(BaseScenario.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)