リスト文字列を返すように設計された JDBC 接続 Web サービス (Axis2) に問題があります (DB から選択) @Webservice
public ArrayList<String> loadDatabase(String txtSearch) {
ArrayList<String> myList = new ArrayList<>();
Connection con = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://127.0.0.1:3306/smd";
String user = "root";
String password = "passw0rd";
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery("SELECT VERSION()");
rs = st.executeQuery("Select * FROM medicine");
while (rs.next()) {
String name = rs.getString("NAME");
myList.add(name);
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(Version.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(Version.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
return myList;
}
@クライアント
public static void main(String[] args) {
try {
ArrayList<String> addData = new ArrayList<String>();
MedicineJDBCFinderStub mStub = new MedicineJDBCFinderStub();
MedicineJDBCFinderStub.LoadDatabase stub = new MedicineJDBCFinderStub.LoadDatabase();
stub.setTxtSearch("t");
LoadDatabaseResponse result = mStub.loadDatabase(stub);
} catch(Exception ex) {
ex.printStackTrace();
}
}
デプロイは成功しましたが、メイン クラスをクライアントで実行するか、Android で (KSOAP を使用して) 実行すると、同じ問題が発生します。
SEVERE: No suitable driver found for jdbc:mysql://127.0.0.1:3306/smd
java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/smd
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.med.dic.finder.MedicineJDBCFinder.loadDatabase(MedicineJDBCFinder.java:27)
mysql-connector-java-5.1.25-bin.jar をライブラリに追加し、メインで正常に接続しましたが (Web サービスを使用していません)。
誰でも私が問題を解決するのを助けることができますか? どうもありがとう