从数据库中读取学生对象时出现此错误.
org.springframework.beans.BeanInstantiationException:无法实例化[java.lang.Long]:找不到默认构造函数; 嵌套异常是java.lang.NoSuchMethodException:java.lang.Long.()org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:107)
完整堆栈跟踪:
org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.lang.Long]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.lang.Long.<init>()
org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:107)
Run Code Online (Sandbox Code Playgroud)
Student.java
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.lang.Long]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.lang.Long.<init>()
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.lang.Long]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.lang.Long.<init>()
org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:107)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute(HandlerMethodInvoker.java:775)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:368)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:172)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NoSuchMethodException: java.lang.Long.<init>()
java.lang.Class.getConstructor0(Class.java:3082) …Run Code Online (Sandbox Code Playgroud) studentService.js
app.factory('saveStudentService',['$http','$scope',function ($http,$scope) {
var studentData = {};
studentData.save = function(jsondata){
var action = "student";
var method = "POST";
$http({
url: action,
method: method,
headers: {'Content-Type': 'application/json'},
data: jsondata
}).success(function(data, status, headers, config) {
toastr.success(status +' : Data has been submitted successfully ');
}).error(function(data, status, headers, config) {
toastr.error(status + ' : Data has not been submitted successfully ');
});
};
return studentData;
}]);
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误
angular.js:13642Error: [$injector:unpr] http://errors.angularjs.org/1.5.6/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20saveStudentService
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:6:412
Run Code Online (Sandbox Code Playgroud)
如果来自studentService.js,则删除$ scope,即
app.factory('saveStudentService',['$http',function ($http) {
Run Code Online (Sandbox Code Playgroud)
此代码工作正常,并没有在控制台中收到任何错误消息.
以下是studentController.js文件,该文件来自此studentService. …
java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
org.springframework.security.crypto.password.DelegatingPasswordEncoder$UnmappedIdPasswordEncoder.matches(DelegatingPasswordEncoder.java:236)
org.springframework.security.crypto.password.DelegatingPasswordEncoder.matches(DelegatingPasswordEncoder.java:196)
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter$LazyPasswordEncoder.matches(WebSecurityConfigurerAdapter.java:593)
Run Code Online (Sandbox Code Playgroud)
我的代码工作正常,现在我已将弹簧安全版本从4.0更改为5.0,它无法正常工作
正如我读过的那样,如果自定义对象需要成为地图的键,则需要覆盖 hashcode 和 equals 方法,但在我的情况下,它可以在不覆盖它的情况下工作。有人能告诉我出了什么问题吗?
Map<Student,Integer> map = new HashMap<>();
Student s1=new Student(1,"A");
Student s2=new Student(2,"B");
Student s3=new Student(3,"C");
map.put(s1,1);
map.put(s2,2);
map.put(s1,3);
for(Student s:map.keySet()) {
System.out.println(map.get(s) + "->" + s.id + " " +s.name);
}
Run Code Online (Sandbox Code Playgroud)
正确的输出:
3-> 1A
2-> 2 B
java ×2
spring ×2
angularjs ×1
collections ×1
equals ×1
hashcode ×1
hashmap ×1
hibernate ×1
javascript ×1
spring-mvc ×1