gpt4 book ai didi

java - 尝试加载InitialContext时出现ClassNotFoundException : org. jboss.naming.remote.client.InitialContextFactory

转载 作者:行者123 更新时间:2023-12-02 12:17:18 25 4
gpt4 key购买 nike

我正在测试(使用 JUnit)休息服务,为了确保一切按预期进行,我需要使用一些 EJB 方法。说,我有:

  • 被测试的类,这里不感兴趣;
  • 测试类
    public class UploadServiceTest {
private final String RemoteBeanLookupKey = "/project/dao/TaskManager!ru.project.dao.TaskManager";
@EJB private TaskManager taskManager;

@Before
public void startEverythingNeeded() throws Exception {
InitialContext ctx = null;
Properties jndiProp = new Properties();

InputStream testConfStream = getClass().getClassLoader().getResourceAsStream("jndi.properties");
jndiProp.load(testConfStream);

ctx = new InitialContext(jndiProp);

taskManager = ((TaskManager) ctx.lookup(RemoteBeanLookupKey));
}
@Test
public void blablabla(){
}
}
  • jndi.properties

java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactoryjava.naming.provider.url=http-remoting://localhost:8080remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=falsejboss.naming.client.ejb.context=true

remote.connection.default.username=admin
remote.connection.default.password=admin
  • gradle 依赖项:testCompile 组:'org.wildfly',名称:'wildfly-ejb-client-bom',版本:'8.2.0.Final',ext:'pom'testCompile group: 'junit', name: 'junit', version: '4.11'provided project(path: ':dao') (这是我想要的模块从中获取 EJB)。

但是当我尝试运行测试时,它失败了:

javax.naming.NoInitialContextException: Cannot instantiate class: org.jboss.naming.remote.client.InitialContextFactory
[Root exception is java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory]

这里和网上的其他类似问题建议将 jboss-client 添加到 CLASSPATH,但我在我的发行版中查看了 jboss-client 附近的自述文件,它说不要这样做,而是要建立 gradle 依赖项。所以我就这么做了。

关于此的另一个奇怪的事情:我从测试中获取了同一项目中另一个模块的代码和属性(由另一个编码器编写)。我尝试运行这些测试,它们按预期工作。我复制了所有内容,甚至更多(gradle 依赖项),但出现此异常。

我尝试简化代码以进行说明,但我可能缺少一些重要的内容。如果需要,我可以复制更多部分的设置和代码。

最佳答案

我从 testCompile group: 'org.wildfly', name: 'wildfly-ejb-client-bom', version: '8.2.0.Final', ext: 'pom 更改了对 ejb-client 的依赖关系'testCompile 'org.wildfly:wildfly-ejb-client-bom:10.0.0.Final' 并开始工作。不确定是否有帮助。

关于java - 尝试加载InitialContext时出现ClassNotFoundException : org. jboss.naming.remote.client.InitialContextFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46074114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com