从android使用jtds连接到azure数据库
我正在设计一个android应用程序,使用开源jtds驱动程序版本1.2.7直接连接到azure数据库。我已成功连接到sql server express数据库,因此我知道它可以正常工作。但是,在尝试连接azure数据库时,我遇到了一个错误。这是stacktrace:从android使用jtds连接到azure数据库,android,ssl,azure,noclassdeffounderror,jtds,Android,Ssl,Azure,Noclassdeffounderror,Jtds,我正在设计一个android应用程序,使用开源jtds驱动程序版本1.2.7直接连接到azure数据库。我已成功连接到sql server express数据库,因此我知道它可以正常工作。但是,在尝试连接azure数据库时,我遇到了一个错误。这是stacktrace: 06-06 17:03:49.881: E/AndroidRuntime(1906): FATAL EXCEPTION: AsyncTask #2 06-06 17:03:49.881: E/AndroidRuntime(1906
06-06 17:03:49.881: E/AndroidRuntime(1906): FATAL EXCEPTION: AsyncTask #2
06-06 17:03:49.881: E/AndroidRuntime(1906): java.lang.RuntimeException: An error occured while executing doInBackground()
06-06 17:03:49.881: E/AndroidRuntime(1906): at android.os.AsyncTask$3.done(AsyncTask.java:299)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
06-06 17:03:49.881: E/AndroidRuntime(1906): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.lang.Thread.run(Thread.java:856)
06-06 17:03:49.881: E/AndroidRuntime(1906): Caused by: java.lang.NoClassDefFoundError: com.sun.net.ssl.SSLContext
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.ssl.SocketFactoriesSUN$TdsTlsSocketFactory.factory(SocketFactoriesSUN.java:174)
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.ssl.SocketFactoriesSUN$TdsTlsSocketFactory.getFactory(SocketFactoriesSUN.java:157)
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.ssl.SocketFactoriesSUN$TdsTlsSocketFactory.createSocket(SocketFactoriesSUN.java:86)
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.jdbc.SharedSocket.enableEncryption(SharedSocket.java:332)
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.jdbc.TdsCore.negotiateSSL(TdsCore.java:554)
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:350)
06-06 17:03:49.881: E/AndroidRuntime(1906): at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.sql.DriverManager.getConnection(DriverManager.java:175)
06-06 17:03:49.881: E/AndroidRuntime(1906): at java.sql.DriverManager.getConnection(DriverManager.java:209)
06-06 17:03:49.881:E/AndroidRuntime(1906):致命异常:AsyncTask#2
06-06 17:03:49.881:E/AndroidRuntime(1906):java.lang.RuntimeException:执行doInBackground()时出错
06-06 17:03:49.881:E/AndroidRuntime(1906):在android.os.AsyncTask$3.done(AsyncTask.java:299)
06-06 17:03:49.881:E/AndroidRuntime(1906):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
06-06 17:03:49.881:E/AndroidRuntime(1906):在java.util.concurrent.FutureTask.setException(FutureTask.java:219)
06-06 17:03:49.881:E/AndroidRuntime(1906):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
06-06 17:03:49.881:E/AndroidRuntime(1906):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-06 17:03:49.881:E/AndroidRuntime(1906):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-06 17:03:49.881:E/AndroidRuntime(1906):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-06 17:03:49.881:E/AndroidRuntime(1906):在java.lang.Thread.run(Thread.java:856)
06-06 17:03:49.881:E/AndroidRuntime(1906):由以下原因引起:java.lang.NoClassDefFoundError:com.sun.net.ssl.SSLContext
06-06 17:03:49.881:E/AndroidRuntime(1906):位于net.sourceforge.jtds.ssl.SocketFactoriesSUN$tdstlsocketfactory.factory(SocketFactoriesSUN.java:174)
06-06 17:03:49.881:E/AndroidRuntime(1906):位于net.sourceforge.jtds.ssl.SocketFactoriesSUN$tdstlsocketfactory.getFactory(SocketFactoriesSUN.java:157)
06-06 17:03:49.881:E/AndroidRuntime(1906):在net.sourceforge.jtds.ssl.SocketFactoriesSUN$tdstlsocketfactory.createSocket(SocketFactoriesSUN.java:86)
06-06 17:03:49.881:E/AndroidRuntime(1906):在net.sourceforge.jtds.jdbc.SharedSocket.enableEncryption(SharedSocket.java:332)
06-06 17:03:49.881:E/AndroidRuntime(1906):在net.sourceforge.jtds.jdbc.TdsCore.negotiateSSL(TdsCore.java:554)
06-06 17:03:49.881:E/AndroidRuntime(1906):在net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:350)
06-06 17:03:49.881:E/AndroidRuntime(1906):位于net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:188)
06-06 17:03:49.881:E/AndroidRuntime(1906):位于java.sql.DriverManager.getConnection(DriverManager.java:175)
06-06 17:03:49.881:E/AndroidRuntime(1906):位于java.sql.DriverManager.getConnection(DriverManager.java:209)
看起来问题出在java.lang.NoClassDefFoundError:com.sun.net.ssl.SSLContext
上,但我不知道该怎么办。我相信强制加密是在数据库中打开的,但我没有设置它,我也没有权限干扰这些设置。你知道该怎么处理这个错误吗