Прежде чем я начну, я хотел бы упомянуть, что я тщательно исследовал это и еще не нашел решения, которое сработало бы для меня (хорошие 2-3 дня исследования).
В настоящее время используется: WAMPServer версии 2.1 (служба Apache отключена)
Eclipse-jee x64
javac 1.6.0_22
Windows 7 x64
Апплет, веб-страница и база данныхвсе проживают на моем локальном компьютере.
Прежде всего, мой апплет работает без проблем в Eclipse IDE, однако я постоянно получаю следующую ошибку при попытке запустить его как applet.html со следующим скриптом:
<applet code="GUI.class"
name="Some name goes here"
archive="APTracker.jar"
width="1000" height="700">
Your browser is not Java enabled.
</applet>
- Я экспортировал свои файлы классов, используя Eclipse IDE, которая включила манифест в appletJar.jar.
- Jar, экспортированный Eclipse, НЕ содержит библиотеку mysql-connector
- После сборки моегофайлы классов Я вручную извлек файлы
com
и org
из jar-файла mysql-connector и ввел их в свой appletJar.jar - После этого я подписал свой jar-файл апплета (и подтвердил, что он подписан) с помощьюключ, срок действия которого истекает через 6 месяцев.
После этих шагов я все еще получаю сообщение об ошибке, показанное ниже.
Я попытался заменить localhost на 127.0.0.1, который не работал.Я также попытался поместить mysql-connector.jar в файлы классов jre, jdk и root, которые не показали изменений.
private final String DRIVER = "com.mysql.jdbc.Driver";
private final String DATABASE_URL = "jdbc:mysql://localhost:3306/javadb";
private final String USERNAME = "xxxxxx";
private final String PASSWORD = "xxxxxx";
private Connection connection = null;
private PreparedStatement selectAllAirports = null;
private ResultSet resultSet;
private ResultSetMetaData metaData;
/* Establish PreparedStatements */
public ResultSetTableModel()
{
try
{
//establish connection to database
connection = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD);
//load driver class
Class.forName( DRIVER );
//create prepared statements
selectAllAirports = connection.prepareStatement( "SELECT asciiname, latitude, longitude, elevation, timezone, country_code FROM geoname;" );
}
catch ( SQLException sqlException )
{
sqlException.printStackTrace();
//System.exit(1);
}
catch ( ClassNotFoundException classNotFound )
{
System.out.println("ClassNotFoundException triggered.");
classNotFound.printStackTrace();
}
}
Это сообщение об ошибке, которое я получаю:
C:\Users\Mr.\Desktop\Applet>appletviewer applet.html
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/javadb
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at ResultSetTableModel.(ResultSetTableModel.java:38)
at GUI.(GUI.java:20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
at sun.applet.AppletPanel.run(AppletPanel.java:368)
at java.lang.Thread.run(Thread.java:662)
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:427)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at GUI.init(GUI.java:60)
at sun.applet.AppletPanel.run(AppletPanel.java:424)
at java.lang.Thread.run(Thread.java:662)