使用webservice在服务器中的客户端调用方法时无法连接MySQL

时间:2013-05-24 03:49:50

标签: android mysql web-services

我遇到JDBC连接问题 Webservice(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;
}

@Client

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();
        }
    }

我部署成功了,但是当我在Client中运行Main类或在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添加到库并在Main中连接成功(不使用Webservice)。

任何人都可以帮我解决问题吗?非常感谢

1 个答案:

答案 0 :(得分:0)

只是在黑暗中拍摄,我对Android的Java知之甚少。尝试添加

Class.forName("com.mysql.jdbc.Driver");

在您的Connection语句上方。当我在使用MySQL和JDBC的任何项目中删除它时,我会得到与您相同的错误。