मैं ज़ेंटस्क नमूना - zentask - playframework पर आधारित एक साधारण लॉगिन बनाने की कोशिश कर रहा हूं, हालांकि जब मैं लॉगिन बटन पर क्लिक करता हूं जो एप्लिकेशन को कॉल करता है। प्रमाणीकरण क्रियाएं, यह रनटाइम अपवाद देता है। त्रुटिPlayframework: [RuntimeException: java.lang.reflect.InvocationTargetException]
[RuntimeException: java.lang.reflect.InvocationTargetException]
Application.java
public class Application extends Controller {
.........
public static class Login
{
public String email;
public String password;
public String validate()
{
if (User.authenticate(email, password) == null) {
return "Invalid user or password";
}
return null;
}
}
public static Result authenticate()
{
Form<Login> loginForm = form(Login.class).bindFromRequest(); //--- error
if(loginForm.hasErrors()) {
return badRequest(login.render(loginForm));
} else {
session("email", loginForm.get().email);
return redirect(
routes.Application.index()
);
}
}
}
मैं समझता हूँ कि यह, लॉग इन क्लास में सत्यापित करें समारोह के साथ क्या करना है क्योंकि जब मैं उपयोगकर्ता का कॉल निकालना कुछ है - मैं के साथ लाइन में चिह्नित किया है। वैध कार्य में प्रमाणित करें यह त्रुटि के बिना काम करता है। लेकिन मैं इसे समझने में असमर्थ हूं।
उपयोगकर्ता वर्ग के रूप में है -
@Entity
public class User extends Model
{
@Id
@Constraints.Required
@Formats.NonEmpty
public String userId;
@OneToOne(cascade=CascadeType.PERSIST)
AccountDetails accDetails;
public static Model.Finder<String,User> find = new Model.Finder<String,User>(String.class, User.class);
// Authenticate the user details
public static User authenticate(String email, String password)
{
String tempId = AccountDetails.authenticate(email, password).userId;
return find.ref(tempId);
}
.. . . . . . .
}
और AccountDetails वर्ग -
@Entity
public class AccountDetails extends Model
{
@Id
String userId;
@Constraints.Required
String emailId;
@Constraints.Required
String password;
public static Model.Finder<String,AccountDetails> find =
new Model.Finder<String,AccountDetails>(String.class, AccountDetails.class);
public static AccountDetails authenticate(String email, String password)
{
return find.where()
.eq("email", email)
.eq("password", password)
.findUnique();
}
}
किसी भी मदद अत्यधिक सराहना की जाएगी।
Thanx बहुत कुछ।
कोई आयात घोषणा नहीं, कोई अपवाद स्टैक ट्रेस, खंडित कोड नहीं। इस तरह के सवाल का जवाब देने के लिए काफी कट्टरपंथी है, सिवाय इसके कि आप पहले से ही इस तरह की समस्या का सामना कर रहे हैं। –