Jakarta ee 使用OpenEJB@ApplicationComposer为junit测试中的测试方法设置用户凭据

Jakarta ee 使用OpenEJB@ApplicationComposer为junit测试中的测试方法设置用户凭据,jakarta-ee,junit,ejb,openejb,Jakarta Ee,Junit,Ejb,Openejb,当我使用@ApplicationComposer配置测试时,它不会在我的企业bean中创建具有正确属性的SessionContext。它总是使用PropertiesLogin,无论我在配置中添加了什么 我一直在努力 javax.ejb.EJBException: User not found for login guest 例外。下面是我的junit测试类和示例bean @RunWith(ApplicationComposer.class) public class OpenEJBTest {

当我使用@ApplicationComposer配置测试时,它不会在我的企业bean中创建具有正确属性的SessionContext。它总是使用PropertiesLogin,无论我在配置中添加了什么

我一直在努力

javax.ejb.EJBException: User not found for login guest
例外。下面是我的junit测试类和示例bean

@RunWith(ApplicationComposer.class)
public class OpenEJBTest {
  @EJB
  UserUtil uu;

   @Configuration
   public Properties properties() {
    Properties p=new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
    p.put(Context.SECURITY_PRINCIPAL, "test");
    p.put(Context.SECURITY_CREDENTIALS, "test");
    p.put("openejb.authentication.realmName", "mylogmodule");
    return p;
   }
   @Test
   public void testSth() {
    uu.getUserlogin();
   }
}

我尝试过使用自定义LogModule(在login.config中定义的mylogmodule)、默认模块(PropertiesLogin),在测试方法中使用属性启动InitialContext,但没有成功。 谢谢你的建议

@Stateless
public class UserUtilBean implements UserUtil {
    @Resource
    private SessionContext ctx;

    public String getUserLogin() {
        return ctx.getCallerPrincipal().getName();
    }
}