Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法连接产品OIM_Java_Weblogic11g_Oim - Fatal编程技术网

Java 无法连接产品OIM

Java 无法连接产品OIM,java,weblogic11g,oim,Java,Weblogic11g,Oim,我有一个代码,实际上可以连接到实验室OIM,但同样的代码我不能连接到产品OIM。下面是我正在使用的代码。我错过什么了吗?我的项目构建路径中也有所有这些JAR。如有任何帮助和建议,将不胜感激。下面是调试该类后得到的代码和错误 public class ConnectionTest { UserManager userManager; public ConnectionTest() { super();

我有一个代码,实际上可以连接到实验室OIM,但同样的代码我不能连接到产品OIM。下面是我正在使用的代码。我错过什么了吗?我的项目构建路径中也有所有这些JAR。如有任何帮助和建议,将不胜感激。下面是调试该类后得到的代码和错误

 public class ConnectionTest {
         UserManager userManager;

          public ConnectionTest() {
                  super();
                }
   public static void main(String[] arg) throws IOException, Exception {

    ConnectionTest oim=new ConnectionTest();
    oim.OIMConnection();
}
 public void OIMConnection(){             
    Hashtable<Object, Object> env = new Hashtable<Object, Object>();
    env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
    env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, "t3://hostname:port");
    System.setProperty("java.security.auth.login.config", "C:\\Documents\\authwl.conf");
    System.setProperty("OIM.AppServerType", "wls");  
    System.setProperty("APPSERVER_TYPE", "wls");
    oracle.iam.platform.OIMClient oimClient = new oracle.iam.platform.OIMClient(env);

    try {                        
        oimClient.login("username", "password".toCharArray());         
        logger.info("Successfully Connected with OIM!\n");
    } catch (LoginException e) {
        CharArrayWriter cw = new CharArrayWriter();
        PrintWriter w = new PrintWriter(cw);
        e.printStackTrace(w);
        logger.error("Login Exception: "+ cw.toString());
    }            
    userManager = oimClient.getService(UserManager.class);
}}
公共类连接测试{
用户管理器用户管理器;
公共连接测试(){
超级();
}
公共静态void main(字符串[]arg)引发IOException,异常{
ConnectionTest oim=新的ConnectionTest();
oim.OIMConnection();
}
public void OIMConnection(){
Hashtable env=新的Hashtable();
put(OIMClient.JAVA_NAMING_FACTORY_INITIAL,“weblogic.jndi.WLInitialContextFactory”);
put(OIMClient.JAVA_NAMING_PROVIDER_URL,“t3://hostname:port”);
System.setProperty(“java.security.auth.login.config”、“C:\\Documents\\authwl.conf”);
System.setProperty(“OIM.AppServerType”、“wls”);
System.setProperty(“APPSERVER_类型”、“wls”);
oracle.iam.platform.OIMClient OIMClient=新的oracle.iam.platform.OIMClient(env);
试试{
oimClient.login(“用户名”、“密码”.tocharray());
logger.info(“已成功连接到OIM!\n”);
}捕获(LoginException e){
CharArrayWriter cw=新的CharArrayWriter();
PrintWriter w=新的PrintWriter(cw);
e、 printStackTrace(w);
logger.error(“登录异常:+cw.toString());
}            
userManager=oimClient.getService(userManager.class);
}}
我得到的错误就在这里

登录异常:javax.security.auth.Login.Login异常:weblogic.socket.UnrecoverableConnectException:[登录失败原因未知:p]位于weblogic.security.auth.Login.UsernamePasswordLoginModule.Login(UsernamePasswordLoginModule.java:194) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于javax.security.auth.login.LoginContext.invoke(LoginContext.java:762) 位于javax.security.auth.login.LoginContext.access$000(LoginContext.java:203) 位于javax.security.auth.login.LoginContext$4.run(LoginContext.java:690) 位于javax.security.auth.login.LoginContext$4.run(LoginContext.java:688) 位于java.security.AccessController.doPrivileged(本机方法) 位于javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687) 位于javax.security.auth.login.LoginContext.login(LoginContext.java:595) 位于Thor.API.Security.LoginHandler.weblogicLoginHandler.login(weblogicLoginHandler.java:61) 位于oracle.iam.platform.OIMClient.login(OIMClient.java:212) 位于oracle.iam.platform.OIMClient.login(OIMClient.java:196) 位于org.com.dis.exa.ConnectionTest.OIMConnection(ConnectionTest.java:73) 位于org.com.dis.exa.ConnectionTest.main(ConnectionTest.java:53)

  • 检查用户名和密码
  • 从Prod(而不是Lab)获取wlfullclient.jar
  • 检查C:\Documents\authwl.conf。这是Prod的文件吗
  • 参考我的样本:

    public static final String OIM_HOSTNAME = "oim.hpt.lab";
    public static final String OIM_PORT = "14000";
    public static final String OIM_PROVIDER_URL = "t3://"+ OIM_HOSTNAME + ":" + OIM_PORT;
    public static final String OIM_USERNAME = "tungpt";
    public static final String OIM_PASSWORD = "Hpt123456";
    public static final String OIM_CLIENT_HOME = "F:/designconsole11gr3/config";
    public static final String AUTHWL_PATH = OIM_CLIENT_HOME + "/authwl.conf";
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        OIMClient oimClient = null;
        try {
            //Set system properties required for OIMClient
            System.setProperty("java.security.auth.login.config", AUTHWL_PATH);
            System.setProperty("APPSERVER_TYPE", "wls");
    
            // Create an instance of OIMClient with OIM environment information  
            Hashtable env = new Hashtable();
            env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
            env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, OIM_PROVIDER_URL);
            oimClient = new OIMClient(env);
    
            // Login to OIM with the approriate credentials
            System.out.println("Login by: "+ OIM_USERNAME);
            oimClient.login(OIM_USERNAME, OIM_PASSWORD.toCharArray());
            System.out.println("Login Done!");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    

    你在使用上面的代码?你有没有替我们隐瞒联系?您是否配置了jndi.properties?您是否对您的机器的生产环境有关联?这可能是肯定的,但您是否已检查以确保您没有尝试使用测试凭据连接到prod?或者您是否用正确的用户凭据替换了“用户名”和“密码”?