0
我寫了一個搜索組件用於SOLR。我想調試它。我嘗試使用eclipse的遠程調試功能調試SOLR本身,但它不適用於插件並顯示未找到源。如何調試Solr插件?
然後我嘗試了包括我的插件項目作爲源項目,但也沒有工作。調試器不會停止插件的斷點。
在這方面的任何幫助將不勝感激!
我寫了一個搜索組件用於SOLR。我想調試它。我嘗試使用eclipse的遠程調試功能調試SOLR本身,但它不適用於插件並顯示未找到源。如何調試Solr插件?
然後我嘗試了包括我的插件項目作爲源項目,但也沒有工作。調試器不會停止插件的斷點。
在這方面的任何幫助將不勝感激!
您可以使用嵌入式solr在您的eclipse項目中編寫Junit測試。這使調試更容易。您只需要在您的測試資源目錄中爲solr-core創建配置文件(solrconfig.xml,schema.xml等;您可以將solr core目錄從solr安裝中複製)並指向CoreContainer到該目錄。此核心容器可用於獲取配置的solr核心和搜索器。 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