我想让一个Android应用程序在LDAP服务器上连接。我正在使用UnboundId库,所以我的应用程序能够建立LDAP连接。问题是resultCode 91连接错误,我不知道如何解决它。 LDAP服务器已启动并正在运行,因为我的桌面应用程序可以建立连接。 我将附上代码:
TextView tv = (TextView)findViewById(R.id.textView);
try {
LDAPConnection c = new LDAPConnection("192.168.106.131",389,"cn=admin,dc=test,dc=com","haha");
if(c.isConnected())
{
tv.setText("good");
}
else
{
tv.setText("bad");
}
} catch (LDAPException e) {
tv.setText("error");
e.printStackTrace();
}
来自LogCat的日志:
05-25 22:56:49.653: E/SELinux(21849): selinux_android_seapp_context_reload: seapp_contexts file is loaded from /data/security/spota/seapp_contexts
05-25 22:56:49.663: D/dalvikvm(21849): Late-enabling CheckJNI
05-25 22:56:50.184: W/dalvikvm(21849): VFY: unable to find class referenced in signature (Ljavax/security/sasl/SaslClient;)
05-25 22:56:50.184: W/dalvikvm(21849): VFY: unable to find class referenced in signature (Ljavax/security/sasl/SaslClient;)
05-25 22:56:50.194: I/dalvikvm(21849): Could not find method javax.security.sasl.SaslClient.dispose, referenced from method com.unboundid.ldap.sdk.LDAPConnectionInternals.close
05-25 22:56:50.194: W/dalvikvm(21849): VFY: unable to resolve interface method 12795: Ljavax/security/sasl/SaslClient;.dispose ()V
05-25 22:56:50.194: D/dalvikvm(21849): VFY: replacing opcode 0x72 at 0x0040
05-25 22:56:50.214: I/dalvikvm(21849): Could not find method javax.security.sasl.SaslClient.wrap, referenced from method com.unboundid.ldap.sdk.LDAPConnectionInternals.sendMessage
05-25 22:56:50.214: W/dalvikvm(21849): VFY: unable to resolve interface method 12801: Ljavax/security/sasl/SaslClient;.wrap ([BII)[B
05-25 22:56:50.214: D/dalvikvm(21849): VFY: replacing opcode 0x72 at 0x005c
05-25 22:57:50.448: W/System.err(21849): LDAPException(resultCode=91 (connect error), errorMessage='An error occurred while attempting to connect to server 192.168.106.131:389: java.io.IOException: Unable to establish a connection to server 192.168.106.131:389 within the configured timeout of 60000 milliseconds.')
05-25 22:57:50.448: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:755)
05-25 22:57:50.448: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:687)
05-25 22:57:50.448: W/System.err(21849): at com.example.aaa.MainActivity.onCreate(MainActivity.java:29)
05-25 22:57:50.448: W/System.err(21849): at android.app.Activity.performCreate(Activity.java:5255)
05-25 22:57:50.448: W/System.err(21849): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
05-25 22:57:50.448: W/System.err(21849): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213)
05-25 22:57:50.448: W/System.err(21849): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
05-25 22:57:50.448: W/System.err(21849): at android.app.ActivityThread.access$700(ActivityThread.java:154)
05-25 22:57:50.448: W/System.err(21849): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
05-25 22:57:50.448: W/System.err(21849): at android.os.Handler.dispatchMessage(Handler.java:99)
05-25 22:57:50.458: W/System.err(21849): at android.os.Looper.loop(Looper.java:137)
05-25 22:57:50.458: W/System.err(21849): at android.app.ActivityThread.main(ActivityThread.java:5306)
05-25 22:57:50.458: W/System.err(21849): at java.lang.reflect.Method.invokeNative(Native Method)
05-25 22:57:50.458: W/System.err(21849): at java.lang.reflect.Method.invoke(Method.java:511)
05-25 22:57:50.458: W/System.err(21849): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
05-25 22:57:50.458: W/System.err(21849): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
05-25 22:57:50.458: W/System.err(21849): at dalvik.system.NativeStart.main(Native Method)
05-25 22:57:50.458: W/System.err(21849): Caused by: java.io.IOException: Unable to establish a connection to server 192.168.106.131:389 within the configured timeout of 60000 milliseconds.
05-25 22:57:50.458: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnectionInternals.<init>(LDAPConnectionInternals.java:143)
05-25 22:57:50.458: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnection.connect(LDAPConnection.java:745)
05-25 22:57:50.458: W/System.err(21849): ... 16 more
05-25 22:57:50.468: W/System.err(21849): LDAPException(resultCode=81 (server down), errorMessage='The connection is not established.')
05-25 22:57:50.468: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnection.registerResponseAcceptor(LDAPConnection.java:4228)
05-25 22:57:50.468: W/System.err(21849): at com.unboundid.ldap.sdk.SimpleBindRequest.process(SimpleBindRequest.java:538)
05-25 22:57:50.468: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1893)
05-25 22:57:50.468: W/System.err(21849): at com.unboundid.ldap.sdk.LDAPConnection.bind(LDAPConnection.java:1855)
05-25 22:57:50.468: W/System.err(21849): at com.example.aaa.MainActivity.onCreate(MainActivity.java:46)
05-25 22:57:50.468: W/System.err(21849): at android.app.Activity.performCreate(Activity.java:5255)
05-25 22:57:50.468: W/System.err(21849): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
05-25 22:57:50.468: W/System.err(21849): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213)
05-25 22:57:50.468: W/System.err(21849): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
05-25 22:57:50.468: W/System.err(21849): at android.app.ActivityThread.access$700(ActivityThread.java:154)
05-25 22:57:50.468: W/System.err(21849): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
05-25 22:57:50.468: W/System.err(21849): at android.os.Handler.dispatchMessage(Handler.java:99)
05-25 22:57:50.478: W/System.err(21849): at android.os.Looper.loop(Looper.java:137)
05-25 22:57:50.478: W/System.err(21849): at android.app.ActivityThread.main(ActivityThread.java:5306)
05-25 22:57:50.478: W/System.err(21849): at java.lang.reflect.Method.invokeNative(Native Method)
05-25 22:57:50.478: W/System.err(21849): at java.lang.reflect.Method.invoke(Method.java:511)
05-25 22:57:50.478: W/System.err(21849): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
05-25 22:57:50.478: W/System.err(21849): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
05-25 22:57:50.478: W/System.err(21849): at dalvik.system.NativeStart.main(Native Method)
05-25 22:57:50.548: D/libEGL(21849): loaded /system/lib/egl/libEGL_adreno200.so
05-25 22:57:50.548: D/libEGL(21849): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
05-25 22:57:50.558: D/libEGL(21849): loaded /system/lib/egl/libGLESv2_adreno200.so
05-25 22:57:50.568: I/Adreno200-EGL(21849): <qeglDrvAPI_eglInitialize:265>: EGL 1.4 QUALCOMM build: AYELDER_AU_LINUX_ANDROID_JB_2.5.5.04.02.02.092.023+PATCH[ES]_msm8960_JB_2.5.5_CL3556704_rel ease_ENGG (CL3556704)
05-25 22:57:50.568: I/Adreno200-EGL(21849): Build Date: 05/17/13 Fri
05-25 22:57:50.568: I/Adreno200-EGL(21849): Local Branch:
05-25 22:57:50.568: I/Adreno200-EGL(21849): Remote Branch: quic/jb_2.5.5
05-25 22:57:50.568: I/Adreno200-EGL(21849): Local Patches: 34c9e193f12610d3e68dabd6198d2c4bfbc66974 RB: Update the master timestamp of the hw_image in rb_texture_update_aliased
05-25 22:57:50.568: I/Adreno200-EGL(21849): Reconstruct Branch: AU_LINUX_ANDROID_JB_2.5.5.04.02.02.092.023 + 01d3c78 + e6f0547 + LOCAL_PATCH[ES]
05-25 22:57:50.618:D / OpenGLRenderer(21849):启用调试模式0
答案 0 :(得分:2)
错误消息表示设备无法与指定的IP地址建立连接。 192.168。。是一个专用LAN网络,因此,如果您使用运营商的移动网络,则无法访问它。如果设备使用WiFi,那么您可能仍需要一些VPN隧道。
如果您知道在同一网络上运行的Web服务器,则可以使用Web浏览器测试与该网络的连接。或者,您可以尝试使用公共目录服务器的LDAP客户端(例如,您可以在端口389上尝试使用directory.verisign.com进行未加密的通信)。
答案 1 :(得分:0)
在调试一些尝试执行LDAP操作而不先调用Connect()的代码时,我也收到此错误。