Я использую весеннюю загрузку с данными SPring. И просто пытаюсь создать простое создание имени пользователя с хешированным паролем для db через командную строку.
Я получаю эту ошибку и говорю, что мой сервис пуст? Когда я смотрел, как передаются мои значения, они, похоже, все равно передают правильные значения. Я просто не понимаю, где и почему он говорит об исключении нулевого указателя, все время, пока моя функция сохранения репозитория JPA получает правильные атрибуты.
Моя сущность ..
@Entity
@EntityScan
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column
private String username;
@Column
private String password;
@Override
public String toString() {
return new StringJoiner(", ", Users.class.getSimpleName() + "[", "]")
.add("id=" + id)
.add("username='" + username + "'")
.add("password='" + password + "'")
.toString();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
И мой основной класс.
@SpringBootApplication
public class HashingexerApplication {
@Autowired
UserService userService;
public static void main(String[] args) {
SpringApplication.run(HashingexerApplication.class, args);
// Scanner input=new Scanner(System.in);
String username, password;
System.out.println("Enter a username: ");
// username = input.nextLine();
username = "josh";
System.out.println("Enter a password: ");
// password = input.nextLine();
password = "pass";
String salt = "_Hello_World";
System.out.println("Password before encryption: " + password);
System.out.println("Salt to be added is: " + salt);
String saltedPass = password + salt;
System.out.println("Unencrypted Salted Password is: " + password + salt);
String passwordEncrypt = BCrypt.hashpw(password, BCrypt.gensalt(12));
System.out.println("Encrypted Salted Password is: " + passwordEncrypt);
Users users = new Users();
users.setId(1);
users.setUsername(username);
users.setPassword(passwordEncrypt);
System.out.println("Object:: " + users);
HashingexerApplication d = new HashingexerApplication();
d.save(users);
}
public String save(Users users) {
System.out.println("method: " + users);
userService.save(users);
return "Done";
}
}
Сведения об ошибке:
Исключение в теме "restartedMain"
java.lang.reflect.InvocationTargetException at
sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
в
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.lang.reflect.Method.invoke (Method.java:498) в
org.springframework.boot.devtools.restart.RestartLauncher.run (RestartLauncher.java:49)
Вызывается: java.lang.NullPointerException at
hashingexer.hashingexer.HashingexerApplication.save (HashingexerApplication.java:61)
в
hashingexer.hashingexer.HashingexerApplication.main (HashingexerApplication.java:51)
... еще 5