我正在尝试在NetBeans中使用Java创建一个Web服务应用程序。此时,我必须在登录期间验证用户。用户的凭据存储在 MySQL 数据库中。DBConnection.getConnection() 处理与数据库的连接,并且它工作正常,尽管该方法本身不起作用。
@WebMethod
public boolean userLogIn (@WebParam(name = "username") String username, @WebParam(name = "password") String password) throws SQLException {
Connection C = DBConnection.getConnection();
PreparedStatement PS = C.prepareStatement("SELECT * FROM users WHERE username=? AND password =?'");
PS.setString(1, username);
PS.setString(2, password);
ResultSet RS = PS.executeQuery();
if (RS.next())
return true;
else
return false;
}
当我测试整体服务时,我收到以下通知:
为以下 WSDL http://my-computer.local:8080/webApp/webWS?WSDL 生成工件时出错
可能的原因可能是在应用程序未配置安全性时调用 https
谁能建议我如何纠正它,使该方法起作用?提前感谢!
这是一个有效的登录方法。它不打算在现实生活中使用。
@WebMethod
@WebResult(name = "user")
public User getUser (@WebParam(name = "username") String username, @WebParam(name = "password") String password) {
User user = new User();
Password password1 = new Password ( password );
try {
Connection C = DBConnection.getConnection();
PreparedStatement PS = C.prepareStatement("SELECT * FROM users WHERE username=? AND password=?");
PS.setString(1, username);
PS.setString(2, Password.toSHA1());
ResultSet RS = PS.executeQuery();
while(RS.next()){
if (RS.getString("username").equals(username) & RS.getString("password").equals(Password.toSHA1())) {
user.setId(RS.getInt("id"));
user.setUsername(RS.getString("username"));
user.setPassword(RS.getString("password"));
user.setName(RS.getString("name"));
user.setSurname(RS.getString("surname"));
user.setEmail(RS.getString("email"));
user.setSex(RS.getString("sex"));
user.setBirthday(RS.getString("birthday"));
// ... other atributes
}
}
}
catch (Exception ex) {
System.out.println(ex);
}
return user;
}