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 が提供するクエリを自分の DB に対して直接実行したところ、レコード セットが正常に返されたことです。JHipster によって自動ロードされるセキュリティまたは認証の制約により、サービスがブロックされている可能性はありますか?

4

1 に答える 1

3

Roo から JHipster への移行に関連するいくつかの問題がありました。

  1. @RestControllerではなく、 org.sprinframework.stereotype.Controller の@Controllerアノテーションを使用して新しい Controller クラスを作成しました ... 元のコントローラー アノテーションは、Spring Roo によってスキャフォールディングされました (これは、Spring Roo を使用して既存の DB からサービスを生成するのに非常に効果的です)。 DBREアドオン、追加するかもしれません)。

  2. @RestController に切り替えた後、最初は JHipster の実装として期待していた 2 番目のハードルに遭遇しました。認証の制約により、サービスがブロックされていました

    • com.[projectname].configこれは、ファイルにアクセスして更新し、SecurityConfiguration.java必要な API を具体的に公開することで修正されました。
  3. 次に、Hibernate が要求されたオブジェクトの完全なコレクションを取得していることを確認する必要がありました (Roo によって構築された複雑なリレーショナル エンティティが多数ありました)...ロールのコレクションを遅延して初期化できませんでした...

出来上がり!既存の Postgresql DB から完全にリバース エンジニアリングされ、事前に足場が組まれた Angular フロントエンドにロードされた、安全に機能する JSON ベースの API。

于 2014-03-20T00:09:08.747 に答える