0

検索アプリを開発しています。SOLRスキーマ、検索クエリ、ファセット検索など、すべてが完了しました。SolrDocumentのリストを返すcxf Webサービスを開発しようとしました。サービス関数の戻り値の型を SolrDocument にしようとするまでは、すべて問題ありません。CXF は、空のコンストラクターを持たない Java オブジェクトの戻り値の型を生成しないことを知っています。SolrDocument オブジェクトの場合、これは当てはまりますか? その上、CXF で複雑な Java オブジェクト型を返すことに成功しました。SolrDocument をオブジェクトとして返すために、提案されたソリューションは何ですか?

私の頭に浮かんだアイデアは、独自の Document オブジェクトを作成し、SolrDocument をその型に変換することでしたが、既に検索結果を SolrDocument として持っているため、費用がかかります。

前もって感謝します。

4

1 に答える 1

0

私は自分の問題を解決しました。この問題は SolrDocumentList に関連しています。SolrDocumentList クラスはシリアル化できないため、CXF はマッピングを作成できません。解決策は、Bean を作成することです。たとえば、Solr スキーマで定義されたフィールドと互換性のある VODItem.Class がある場合、検索中に次のことを行う必要があります。

DocumentObjectBinder binder = new DocumentObjectBinder();
List<VodItem> vodResults = new ArrayList<VodItem>();
vodResults = binder.getBeans(VodItem.class, SolrDocumentList);

これで、Web サービスは必要なマッピングを行うことができます。

于 2013-09-16T11:14:06.403 に答える