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