Java EJB查找失败或任何上下文查找失败Weblogic返回Weblogic.socket.UnrecoverableConnectException:[登录失败,原因未知:
客户端的代码如下所示:Java EJB查找失败或任何上下文查找失败Weblogic返回Weblogic.socket.UnrecoverableConnectException:[登录失败,原因未知:,java,weblogic,ejb-3.0,jdeveloper,Java,Weblogic,Ejb 3.0,Jdeveloper,客户端的代码如下所示: javax.naming.CommunicationException [Root exception is weblogic.socket.UnrecoverableConnectException: [Login failed for an unknown reason: Caused by: weblogic.socket.UnrecoverableConnectException: [Login failed for an unknown reason:
javax.naming.CommunicationException [Root exception is weblogic.socket.UnrecoverableConnectException:
[Login failed for an unknown reason:
Caused by: weblogic.socket.UnrecoverableConnectException:
[Login failed for an unknown reason:
package com.mygrp.macropnt;
导入com.mygrp.macropnt.ejb.ABCUpdtNewSessionEJBBean;
导入java.util.Hashtable;
导入java.util.List;
导入javax.naming.Context;
导入javax.naming.InitialContext;
导入javax.naming.NamingException;
公共类abcupdtnewsessionejbbenclient{
公共静态void main(字符串[]args){
试一试{
final Context=getInitialContext();
/ABCUpdtNewSessionEJBBean ABCUpdtNewSessionEJBBean=(ABCUpdtNewSessionEJBBean)context.lookup(“MacroPointIntegration MacroPointDAO ABCUpdtNewSessionEJBBean#com.mygrp.macropnt.ejb.ABCUpdtNewSessionEJBBean”);
ABCUpdtNewSessionEJBBean ABCUpdtNewSessionEJBBean=(ABCUpdtNewSessionEJBBean)context.lookup(“jdbc.cnTPSDS”);
for(ABCUpdt ABCUpdt:(列表)ABCUpdtNewSessionEJBBean.getABCUpdtFindAll()){
printABCUpdt(ABCupdt);
}
}捕获(例外情况除外){
例如printStackTrace();
}
}
专用静态无效打印ABCUpdt(ABCUpdt ABCUpdt){
System.out.println(“version=“+ABCupdt.getVersion());
System.out.println(“mpluKey=“+ABCupdt.getMpluKey());
}
私有静态上下文getInitialContext()引发NamingException{
Hashtable env=新的Hashtable();
//WebLogic Server 10.x连接详细信息
环境put(Context.INITIAL\u Context\u工厂,“weblogic.jndi.WLInitialContextFactory”);
env.put(Context.PROVIDER_URL,“t3://127.0.0.1:7101”);
返回新的InitialContext(env);
}
}
使用wlst.cmd
我能够使用t3协议连接到WEblogic。我也在jndi树中确认了我的ejb存在。因此,一些人可以指出一个地方来寻找这个问题的解决方案
谢谢,
Muqet可能的解决方案:尝试不起作用。即使ip地址也没有帮助。你的端口正确吗?我的一个新手错误是,我尝试连接到管理服务器,而不是部署应用程序的托管服务器。是的。7101用于defaultserver侦听端口。你的代码看起来正常。你能将你的应用程序部署到不同的weblogic以验证这一点吗t它没有损坏?或者在weblogic上部署一些第三方演示并测试它。
package com.mygrp.macropnt;
import com.mygrp.macropnt.ejb.ABCUpdtNewSessionEJBBean;
import java.util.Hashtable;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class ABCUpdtNewSessionEJBBeanClient {
public static void main(String [] args) {
try {
final Context context = getInitialContext();
/ABCUpdtNewSessionEJBBean ABCUpdtNewSessionEJBBean = (ABCUpdtNewSessionEJBBean)context.lookup("MacroPointIntegration-MacroPointDAO-ABCUpdtNewSessionEJBBean#com.mygrp.macropnt.ejb.ABCUpdtNewSessionEJBBean");
ABCUpdtNewSessionEJBBean ABCUpdtNewSessionEJBBean = (ABCUpdtNewSessionEJBBean)context.lookup("jdbc.cnTPSDS");
for (ABCUpdt ABCupdt : (List<ABCUpdt>)ABCUpdtNewSessionEJBBean.getABCUpdtFindAll()) {
printABCUpdt(ABCupdt);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static void printABCUpdt(ABCUpdt ABCupdt) {
System.out.println( "version = " + ABCupdt.getVersion() );
System.out.println( "mpluKey = " + ABCupdt.getMpluKey() );
}
private static Context getInitialContext() throws NamingException {
Hashtable env = new Hashtable();
// WebLogic Server 10.x connection details
env.put( Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory" );
env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7101");
return new InitialContext( env );
}
}