0

错误描述

大家好,

我无法从基于 JHipster 的项目中手动添加的控制器获得响应。我搭建了最初的项目,然后亲手编写了自己的服务和控制器。

当我执行调用时,我从 SoapUI(我用于初始验证)获得的错误结果位于以下 url: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 自动加载的某些安全或身份验证约束,服务是否可能被阻止?

4

1 回答 1

3

存在一些问题,都与从 Roo 迁移到 JHipster 相关:

  1. 我使用 org.sprinframework.stereotype.Controller 的@Controller注释而不是@RestController构建了我的新 Controller 类......原来的控制器注释是由 Spring Roo 搭建的(它在使用它们从现有数据库生成服务方面非常有效DBRE 插件,我可能会添加)。

  2. 切换到@RestController 后,我遇到了第二个障碍,我最初期望它是一个 JHipster 实现:由于身份验证限制,服务被阻止

    • 这是通过进入com.[projectname].config和更新SecurityConfiguration.java文件来解决的,特别是公开我想要的 API。
  3. 然后,我必须确保 Hibernate 获得了所请求对象的完整集合(我有很多由 Roo 构建的复杂关系实体)......未能懒惰地初始化角色集合......

瞧!功能强大、安全的基于 JSON 的 API,从现有的 Postgresql 数据库进行完全逆向工程,加载到预制的 Angular 前端。

于 2014-03-20T00:09:08.747 回答