无法连接产品 OIM
Not Able to Connect Prod OIM
我有一个代码实际上能够连接到 Lab OIM,但同样的代码我无法连接到 Prod OIM。下面是我正在使用的代码。我错过了什么吗?我的项目构建路径中也有所有这些 Jars。帮助和任何建议将不胜感激。下面是我在调试 class.
后得到的代码和错误
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);
}}
我得到的错误在这里.....
登录异常:javax.security.auth.login.LoginException: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.access000 美元(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)
- 检查用户名和密码。
- 从产品(而非实验室)获取 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();
}
}
我有一个代码实际上能够连接到 Lab OIM,但同样的代码我无法连接到 Prod OIM。下面是我正在使用的代码。我错过了什么吗?我的项目构建路径中也有所有这些 Jars。帮助和任何建议将不胜感激。下面是我在调试 class.
后得到的代码和错误 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);
}}
我得到的错误在这里.....
登录异常:javax.security.auth.login.LoginException: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.access000 美元(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)
- 检查用户名和密码。
- 从产品(而非实验室)获取 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();
}
}