Hi
I'm trying to connect to SQL Server 2008 using JDBC. I downloaded the JDBC
from microsoft and there were two java files sqljdbc.jar and sqljdbc4.jar. I
imported sqljdbc4.jar into my application but when i get to conn =
DriverManager.getConnection(connString); i get the error below: the
connection string is
"jdbc:sqlserver://xxx.xxx.xxx.xxx:1433;encrypt=fasle;user=username;password=password;"
Can any one tell me what is going wrong? my code is below the error below. I
know that there are other ways to connect to a db and using JDBC isnt the
best but it the only suitable method for my application.
any help would be great and Thanks in advance.
I/MobileTrend(13984): ERROR 1:
com.microsoft.sqlserver.jdbc.SQLServerException:The driver could not
establish a secure connection to SQL Server by using Secure Sockets Layer
(SSL) encryption. Error: "Socket closed".
W/System.err(13984): com.microsoft.sqlserver.jdbc.SQLServerException: The
driver could not establish a secure connection to SQL Server by using Secure
Sockets Layer (SSL) encryption. Error: "Socket closed".
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1533)
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1042)
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
W/System.err(13984): at
java.sql.DriverManager.getConnection(DriverManager.java:180)
W/System.err(13984): at
java.sql.DriverManager.getConnection(DriverManager.java:145)
W/System.err(13984): at
com.boozel.mobiletrend.MobileTrendActivity.query(MobileTrendActivity.java:77)
W/System.err(13984): at
com.boozel.mobiletrend.MobileTrendActivity.onOptionsItemSelected(MobileTrendActivity.java:50)
W/System.err(13984): at
android.app.Activity.onMenuItemSelected(Activity.java:2205)
W/System.err(13984): at
com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:748)
W/System.err(13984): at
com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
W/System.err(13984): at
com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
W/System.err(13984): at
com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
W/System.err(13984): at
com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
W/System.err(13984): at
android.view.View$PerformClick.run(View.java:9080)
W/System.err(13984): at
android.os.Handler.handleCallback(Handler.java:587)
W/System.err(13984): at
android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err(13984): at android.os.Looper.loop(Looper.java:130)
W/System.err(13984): at
android.app.ActivityThread.main(ActivityThread.java:3683)
W/System.err(13984): at java.lang.reflect.Method.invokeNative(Native
Method)
W/System.err(13984): at java.lang.reflect.Method.invoke(Method.java:507)
W/System.err(13984): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
W/System.err(13984): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
W/System.err(13984): at dalvik.system.NativeStart.main(Native Method)
W/System.err(13984): Caused by: java.net.SocketException: Socket closed
W/System.err(13984): at
org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native
Method)
W/System.err(13984): at
org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)
W/System.err(13984): at
org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:328)
W/System.err(13984): at
com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1483)
W/System.err(13984): ... 24 more
package com.boozel.mobiletrend;
import java.sql.Connection;
import java.sql.DriverManager;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import com.microsoft.sqlserver.jdbc.*;
public class MobileTrendActivity extends Activity {
SharedPreferences sharedPreferences;
TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sharedPreferences = getSharedPreferences("MobileTrend", 0);
tv = (TextView)findViewById(R.id.output);
tv.setMovementMethod(new ScrollingMovementMethod());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.xml.mainmenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.settings:
Intent myIntent = new Intent(MobileTrendActivity.this,
Settings.class);
MobileTrendActivity.this.startActivity(myIntent);
return true;
case R.id.connect1:
query();
return true;
case R.id.connect2:
query2();
return true;
case R.id.clear:
tv.setText("");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void query()
{
Log.i("MobileTrend","1) MySQL Connect Example.");
Connection conn = null;
try {
outputToConsole("\n1) Attempting to connect...");
String driver =
sharedPreferences.getString("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver");
outputToConsole("Driver: "+driver);
Class.forName(driver).newInstance();
//test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;
outputToConsole("Driver Instance Created");
String connString = sharedPreferences.getString("connectionstring1","");
outputToConsole("Connection String: "+connString);
conn = DriverManager.getConnection(connString);
//conn = DriverManager.getConnection(url+dbName,userName,password);
outputToConsole("Connected to the database");
conn.close();
outputToConsole("Disconnected from database");
} catch (Exception e)
{ outputToConsole("ERROR 1: "+e);
e.printStackTrace();
}
}
public void query2()
{
Log.i("MobileTrend","2) MySQL Connect Example.");
Connection conn = null;
try {
outputToConsole("\n2) Attempting to connect...");
String driver =
sharedPreferences.getString("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver");
outputToConsole("Driver: "+driver);
Class.forName(driver).newInstance();
//test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class;
outputToConsole("Driver Instance Created");
String connString = sharedPreferences.getString("connectionstring2","");
outputToConsole("Connection String: "+connString);
String username = sharedPreferences.getString("username2","");
outputToConsole("User Name: "+username);
String password = sharedPreferences.getString("password2","");
outputToConsole("Password: "+password);
conn = DriverManager.getConnection(connString,username,password);
//conn = DriverManager.getConnection(url+dbName,userName,password);
outputToConsole("Connected to the database");
conn.close();
outputToConsole("Disconnected from database");
} catch (Exception e)
{ outputToConsole("ERROR 2: "+e);
e.printStackTrace();
}
}
public void outputToConsole(String message)
{
tv.append(message+"\n");
Log.i("MobileTrend",message);
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en