2017-03-01 18 views
0

これに続いて、tutorialを実行して、SpringブートでRESTサービスを構築しました。すべてがうまくコンパイルされますが、起動後にこのエラーが発生します。単純なSpring起動アプリケーションで「アプリケーションが失敗しました」というメッセージが表示される

*************************** 
APPLICATION FAILED TO START 
*************************** 

Description: 

Field repo in com.pearlbit.ContactRestController required a bean of type 'com.pearlbit.Contact$ContactRepository' that could not be found. 


Action: 

Consider defining a bean of type 'com.pearlbit.Contact$ContactRepository' in your configuration. 

何が悪いと思いますか?

更新:

ここに私の "コンタクト"クラスコードがあります。

package com.pearlbit; 
import org.springframework.data.annotation.Id; 
import org.springframework.data.mongodb.core.mapping.Document; 
import org.springframework.data.mongodb.repository.MongoRepository; 
import org.springframework.data.repository.query.Param; 
import org.springframework.stereotype.Repository; 

import java.util.List; 

@Document 
public class Contact { 


    public interface ContactRepository extends MongoRepository<Contact, String> { 
     List<Contact> findByLastName(String lastName); 
    } 


    @Id 
    private String id; 
    private String firstName; 
    private String lastName; 
    private String address; 
    private String phoneNumber; 
    private String email; 
    private String twitterHandle; 
    private String facebookProfile; 
    private String linkedInProfile; 
    private String googlePlusProfile; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public String getPhoneNumber() { 
     return phoneNumber; 
    } 

    public void setPhoneNumber(String phoneNumber) { 
     this.phoneNumber = phoneNumber; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public String getTwitterHandle() { 
     return twitterHandle; 
    } 

    public void setTwitterHandle(String twitterHandle) { 
     this.twitterHandle = twitterHandle; 
    } 

    public String getFacebookProfile() { 
     return facebookProfile; 
    } 

    public void setFacebookProfile(String facebookProfile) { 
     this.facebookProfile = facebookProfile; 
    } 

    public String getLinkedInProfile() { 
     return linkedInProfile; 
    } 

    public void setLinkedInProfile(String linkedInProfile) { 
     this.linkedInProfile = linkedInProfile; 
    } 

    public String getGooglePlusProfile() { 
     return googlePlusProfile; 
    } 

    public void setGooglePlusProfile(String googlePlusProfile) { 
     this.googlePlusProfile = googlePlusProfile; 
    } 

} 

私はMongoRepositoryのインターフェースを含んでいますが、それでも私には同じ問題があります。これは他の場所に追加する必要がありますか?

+0

あなたのコードは見えませんが、ContactRepositoryは '@ Component'や' @ Repository'として注釈されていないようです。 代わりに公式のチュートリアルを使用することを検討してください:https://spring.io/guides/gs/rest-service/ – Kiryl

+0

私はこれらを追加しましたが、それでも私は同じエラーを与えています。 – DookieMan

+0

2番目の推測 - @EnableMongoRepositoriesアノテーションをアプリケーション設定に追加しましたか? – Kiryl

答えて

0
package hello; 

import java.util.List; 

import org.springframework.data.repository.CrudRepository; 

public interface ContactRepositoryextends ContactRepository<Contact, Long> { 
    List<Customer> findByLastName(String lastName); 
} 

これを試してください。リポジトリは春に自動的に実装されます。

+0

これは私のモデルクラスです。 publicインターフェイスContactRepositoryはMongoRepositoryを拡張します。 {} それはどこに属していますか? – DookieMan

+0

あなたのインターフェイスは、Componentetクラスにネストされています。単独のJavaファイルへのインタフェースを抽出し、@ Repoitoryを追加しようとすることができます –

+0

これは正しいです。私の問題は別ファイルでこれを持っていなかったことです。 – DookieMan

0

おそらく、Contact $ ContactRepositoryがBeanタイプを使用していますが、まだ作成していない場合は、まずこのタイプのBeanを登録する必要があります。スプリングブートを使用している場合は、JPAスターターをJPAリポジトリインタフェースを拡張する

+1

例を投稿できますか?あなたはなぜこれが当てはまると思いますか? – liorsolomon

関連する問題