我在weblogic上部署了一个ejb。我能够通过一个简单的java客户机成功地获得远程引用。但是,当我通过web应用程序访问ejb时,它会抛出以下异常:
javax.naming.CommunicationException [Root exception is weblogic.socket.UnrecoverableConnectException: [Login failed for an unknown reason: HTTP/1.1 404 Not Found]]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:783)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:367)
at weblogic.jndi.Environment.getContext(Environment.java:315)
at weblogic.jndi.Environment.getContext(Environment.java:285)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
我不知道为什么协议是HTTP,我使用的是t3。这是我的密码:
Properties serverProperties = new Properties();
serverProperties.put("java.naming.provider.url", "t3://localhost:3080");
serverProperties.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
InitialContext context = new InitialContext(serverProperties);
发布于 2013-09-04 20:06:40
我怀疑您的weblogic侦听地址是用服务器的主机名配置的。请参阅以下文章:01/web.1111/e13709/setup.htm
具体来说,它说:
本地主机考虑
如果将服务器实例的侦听地址标识为本地主机,则非本地进程将无法连接到服务器实例。只有承载服务器实例的计算机上的进程才能连接到服务器实例。如果服务器实例必须作为localhost可访问(例如,如果您有连接到localhost的管理脚本),并且还必须由远程进程访问,则将侦听地址保留为空。服务器实例将确定机器的地址并侦听它。
https://stackoverflow.com/questions/18566225
复制相似问题