2017-08-04 1 views
0

J'ai écrit un composant de recherche à utiliser avec SOLR. Je veux le déboguer. J'ai essayé de déboguer le SOLR lui-même en utilisant la fonction de débogage à distance d'eclipse mais cela ne fonctionne pas pour le plugin et montre la source non trouvée.Comment déboguer le plugin Solr?

Puis j'ai essayé d'inclure mon projet plugin comme projet source, mais cela n'a pas fonctionné non plus. Le débogueur ne s'arrête pas aux points d'arrêt pour le plugin.

Toute aide à cet égard sera grandement appréciée!

+0

Avez-vous rencontré l'instance Solr avec votre build plug-in contenant des informations de débogage? Avez-vous essayé d'attacher manuellement des sources au chemin de classe de votre configuration de lancement de débogage distant dans eclipse? – SpaceTrucker

+0

Je suis nouveau à cela. Pouvez-vous élaborer sur comment faire cela? – wasimbhalli

Répondre

0

Vous pouvez écrire un test Junit dans votre projet eclipse à l'aide d'une requête intégrée. Cela facilite le débogage. Tout ce que vous avez à faire est de créer les fichiers de configuration pour le solr-core (solrconfig.xml, schema.xml, etc, vous pourriez probablement copier le répertoire solr de votre installation solr) dans votre répertoire de ressources de test et pointez le CoreContainer vers ce répertoire. Ce conteneur principal peut être utilisé pour obtenir le noyau solr configuré et votre chercheur. JUnit et Solr-core sont les dépendances nécessaires.

est Ci-dessous un exemple de test code:

/** 
* 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 :) 
    } 
}