gpt4 book ai didi

java - 使用JBoss连接EJB

转载 作者:行者123 更新时间:2023-12-01 18:43:54 24 4
gpt4 key购买 nike

我使用 JBoss 服务器来托管我的 EJB。

服务器已启动,当我转到 localhost:8080 时,我看到主页(欢迎使用 AS 7,您的 JBoss 应用程序服务器 7 正在运行。)

在我的客户端项目中,我尝试像这样连接:

    private static Calculette lookupRemoteStatelessCalculator() throws NamingException {    
final Context context = new InitialContext();
context.addToEnvironment("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
context.addToEnvironment("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
context.addToEnvironment("java.naming.provider.url", "localhost:8080");

return (Calculette) context.lookup("ejb/stateless/calculette");
}

运行时出现此错误消息:

Could not obtain connection to any of these urls: localhost:8080 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to retrieve stub from server localhost:8080 [Root exception is java.io.EOFException]]

我尝试使用 jndi.properties 但出现了我不明白的错误,当我将参数直接放在上下文上时就可以了..

有什么想法吗?

谢谢

最佳答案

JNDI 查找在不同的端口上工作。默认情况下,您必须使用:

 Properties jndiProps = new Properties();
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProps.put(Context.PROVIDER_URL,"remote://localhost:4447");
// create a context passing these properties
Context context = new InitialContext(jndiProps);

请注意,对于不同的 JBoss/Wildfly 版本,存在不同的方法。

另请参阅:https://docs.jboss.org/author/display/AS72/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+or+remote-naming+project

关于java - 使用JBoss连接EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59873710/

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