嘿所有,
我在基于JHipster的项目中从手动添加的控制器获取响应时遇到问题。我支持原始项目,然后手工编写自己的服务和控制器。
当我执行调用时,我从SoapUI获取的错误结果(我用于初始验证)位于以下网址:http://imgur.com/04FpmEZ,Havk1EL#0
如果我查看 Eclipse控制台错误,我会看到以下内容:http://imgur.com/04FpmEZ,Havk1EL#1
/**
* GET /courses/json -> get all the courses.
*/
@RequestMapping(value = "/json",
method = RequestMethod.GET,
produces = "application/json")
@Timed
public List<Course> getAll() {
log.debug("REST request to get all Courses");
return courseService.findAllCourses();
}
package com.testapp.myapp.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.testapp.myapp.domain.Course;
import com.testapp.myapp.repository.CourseRepository;
@Service
@Transactional
public class CourseServiceImpl implements CourseService {
@Autowired
CourseRepository courseRepository;
public long countAllCourses() {
return courseRepository.count();
}
public void deleteCourse(Course course) {
courseRepository.delete(course);
}
public Course findCourse(Integer id) {
return courseRepository.findOne(id);
}
public List<Course> findAllCourses() {
return courseRepository.findAll();
}
public List<Course> findCourseEntries(int firstResult, int maxResults) {
return courseRepository.findAll(new org.springframework.data.domain.PageRequest(firstResult / maxResults, maxResults)).getContent();
}
public void saveCourse(Course course) {
courseRepository.save(course);
}
public Course updateCourse(Course course) {
return courseRepository.save(course);
}
}
令人困惑的是,我直接对我的数据库运行了hibernate提供的查询,并且它返回记录集就好了。 由于JHipster自动加载某些安全性或身份验证约束,是否可能阻止服务?
答案 0 :(得分:3)
我用org.sprinframework.stereotype.Controller的 @Controller 注释构建了我的新Controller类,而不是 @RestController ...原始控制器注释是由Spring Roo搭建的(我可能会使用他们的DBRE插件高效地从现有数据库生成服务)。
切换到@RestController之后,我遇到了第二个障碍,我原本期望将其作为JHipster实现:由于身份验证限制,服务被阻止。
com.[projectname].config
并更新SecurityConfiguration.java
文件来修复此问题,特别公开了我想要的API。 然后,我必须确保Hibernate获取所请求对象的完整集合(我有许多由Roo构建的复杂关系实体)... 无法懒惰地初始化集合角色 ...
@OneToMany(fetch = FetchType.EAGER, mappedBy = "courseId", cascade = CascadeType.REMOVE)
瞧!功能强大,安全可靠的基于JSON的API,完全从现有的Postgresql DB进行逆向工程,加载到预先计算的Angular前端。