Re: [J2EE] Spring MVC 實現搜尋文章功能 (Lucene..)

作者: ek0424   2014-08-13 19:37:47
大大,我想再請教一下,為什麼我照著範例做了一個repository和model
然後也依照controller的程式碼加了一段
@Resource private NewsRepository newsRepository;
我只是想跑跑不同的資料而已,像是這樣
//這裡@Document我不確定我的type這樣寫是不是對的,我找不到您哪裡有寫type的位置
@Document(indexName="news",type="opinion")
public class News {
private String oid ;
private String articleid ;
private String content ;
private String link ;
private String timestamp ;
private String subject ;
public String getArticleid() {
return articleid;
}
後面省略....
所有的方法都沒有太大修改 都是依照您的範例,只是改一些對應變數名稱
讓網頁能秀出我自己的資料而已,但是我run起來的時候都會碰到這個錯誤
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'homeController': Injection of resource
dependencies failed; nested exception is org.springframework.beans.factory
.BeanCreationException: Error creating bean with name 'newsRepository':
Invocation of init method failed; nested exception is java.lang
.NullPointerException....不太知道怎麼解,不知道是不是跟這段有關
@PostConstruct
private void initData() {
List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
LoremIpsum lorem = new LoremIpsum();
for (int i = MINCOUNT; i < MAXCOUNT; i++) {
String documentId = UUID.randomUUID().toString();
Book book = new Book();
book.setId(documentId);
book.setName(lorem.randomWord());
book.setMessage(lorem.sentence());
book.setPrice(RandomUtils.nextDouble());
IndexQuery indexQuery = new IndexQueryBuilder().withId(book.getId()).withObject(book).build();
indexQueries.add(indexQuery);
}
// bulk index
elasticsearchTemplate.bulkIndex(indexQueries);
}
但是我想這裡應該只是您用來隨機產生範例資料的功能而已,應該沒有關係吧?
我檢查過好幾次了,很多@標註我都有加上去,沒有漏掉,實在無解才來求救...謝謝!
※ 引述《phstudy (study)》之銘言:
: 範例是使用Transport client, 所以跟設定http的連線加密應該沒關係
: Spring Data Elasticsearch也是使用Elasticsearch Java API去作查詢的
: 驗證的話,可以在spring-data-elasticsearch-1.0.0.RELEASE.jar裡面下中斷點
: 中斷點可下在類別:org.springframework.data.elasticsearch.core.\
: ElasticsearchTemplate的queryForPage() method
: trace一下就知道Spring Data Elasticsearch內部是怎麼運作的了 :D
: ※ 引述《ek0424 ()》之銘言:
: : 非常謝謝你~另外想請教一下,若elasticsearch本身有設定http的連線加密的話,
: : 設定檔那邊要怎麼改呢?還有就是BookRepository.java這段,是繼承Spring Data
: : 寫好的部分嘛,因為我只有寫過用一般的Elasticsearch Java API去撈資料,像
: : 類似下面的code,因為我在您的範例裡面並沒有看到類似的code出現,所以很好奇
: : 是否用了spring data這些基本的方法都是會包在特別的spring data api裡面?
: : QueryBuilder query = QueryBuilders.matchQuery("text", "security");
: : SearchResponse response = client.prepareSearch("social")
: : .setTypes("twitter").setQuery(query)
: : .setScroll(new TimeValue(6000)).setFrom(0).setSize(100)
: : .execute()
: : .actionGet();
: : 不好意思問題有點多,非常感謝~
作者: phstudy (study)   2014-08-13 20:00:00
應該是package問題, 看一下elasticsearch-context.xml
作者: ek0424   2014-08-13 21:25:00
package都設定repository那個,java檔也都放在正確的地方耶

Links booklink

Contact Us: admin [ a t ] ucptt.com