SOLRで使用する検索コンポーネントを作成しました。私はそれをデバッグしたい。私はEclipseのリモートデバッグ機能を使ってSOLR自体をデバッグしようとしましたが、プラグインでは機能せず、ソースが見つかりません。Solrプラグインをデバッグするには?
次に、私のプラグインプロジェクトをソースプロジェクトとして含めようとしましたが、どちらもうまくいきませんでした。デバッガは、プラグインのブレークポイントで停止しません。
この点に関するお手伝いをさせていただきます。
SOLRで使用する検索コンポーネントを作成しました。私はそれをデバッグしたい。私はEclipseのリモートデバッグ機能を使ってSOLR自体をデバッグしようとしましたが、プラグインでは機能せず、ソースが見つかりません。Solrプラグインをデバッグするには?
次に、私のプラグインプロジェクトをソースプロジェクトとして含めようとしましたが、どちらもうまくいきませんでした。デバッガは、プラグインのブレークポイントで停止しません。
この点に関するお手伝いをさせていただきます。
埋め込みソルを使用して、EclipseプロジェクトでJunitテストを作成できます。これにより、デバッグが容易になります。必要なのは、solr-core(solrconfig.xml、schema.xmlなど)の設定ファイルを作成して、テストリソースディレクトリにsolrインストールのsolrコアディレクトリをコピーし、そのディレクトリへのCoreContainerこのコアコンテナは、構成されたソルバーコアとサーチャーを取得するために使用できます。 JUnitとSolr-coreは必要な依存関係です。以下は
テスト・コードの例です:
/**
* This is a starting point for testing the component with embedded solr!
*/
public class SearchComponentTest
{
private static CoreContainer container;
private static SolrCore core;
private static final Logger logger = LoggerFactory.getLogger(DataImportRequestHandlerTest.class.getName());
/*
* PREPARE AND TEAR DOWN FOR TESTS
*/
@BeforeClass
public static void prepareClass() throws Exception
{
// create the coreContainer from conf dir in test resources
container = new CoreContainer(
DataImportRequestHandlerTest.class.getResource("/solrDir").getPath().substring(1));
container.load();
core = container.getCore("CORENAME");
logger.info("Solr core loaded!");
}
@AfterClass
public static void cleanUpClass()
{
core.close();
container.shutdown();
logger.info("Solr core shut down!");
}
/* TESTS TO RUN */
/**
* Test the search component here or just trigger it to debug
*/
@Test
public void testSearchComponent()
{
/* PREPARE */
SearchComponent mySearchComp = core.getSearchComponent("componentNameFromSolrConf");
/* RUN */
// do something with your search component
/* CHECK */
// check results with asserts :)
}
}
デバッグ情報を含むプラグインのビルドでのSolrインスタンスを実行しましたか? eclipse内のリモートデバッグ起動設定のクラスパスに手動でソースをアタッチしてみましたか? – SpaceTrucker
私はこれに新しいです。あなたはそれをどうやって行うのか詳しく教えていただけますか? – wasimbhalli