Соединение Android Studio с Elasticsearch - PullRequest
0 голосов
/ 07 апреля 2020

Я использую REST-клиент ElasticSearch в Android Studio для соединения с ElasticSearch, функция работает в Maven Project, но не работает в Android Studio. Ошибка: java .lang.ExceptionInInitializerError. Причина: java .lang.NullPointerException: попытка вызвать виртуальный метод 'java .security.CodeSource java .security.ProtectionDomain.getCodeSource ()' для нулевого объекта. ссылка на org.elasticsearch.Build.getElasticsearchCodeSourceLocation (Build. java: 194)

Gradle

dependencies {
api 'com.loopj.android:android-async-http:1.4.9'
api 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.6.2'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:design:28.0.0'
}

Основная активность:

Button buttonRequest = (Button) findViewById(R.id.get);
    buttonRequest.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
                    new HttpHost("localhost", 9200, "http"),
                    new HttpHost("localhost", 9201, "http")
            ));
            //build search request
            SearchRequest searchRequest = new SearchRequest("logstash-2020.03.12-000001");
            searchRequest.types("_doc");
            SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
            sourceBuilder.query(QueryBuilders.matchQuery("time", "Mar 8 12:05:10"));
            searchRequest.source(sourceBuilder);
            SearchResponse searchResponse = null;
            try {
                searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
            } catch (IOException e) {
                e.printStackTrace();
            }

            SearchHits hits = searchResponse.getHits();
            SearchHit[] searchHits = hits.getHits();
            StringBuffer ids = new StringBuffer();
            String idlast = ids.toString();
            int vertexCount = 3;
            ArrayList<ArrayList> fullArray = new ArrayList<>(vertexCount);
            for (int i = 0; i < vertexCount; i++) {
                fullArray.add(new ArrayList());
            }
            for (SearchHit hit : searchHits) {
                fullArray.get(0).add((String) hit.getSourceAsMap().get("time"));
                fullArray.get(1).add((String) hit.getSourceAsMap().get("loghost"));
                fullArray.get(2).add((String) hit.getSourceAsMap().get("syslog_process"));
            }
            String str = fullArray.toString();
            Toast.makeText(MainActivity.this, "Hello!"+str, Toast.LENGTH_SHORT).show();
        }
    });

Любая помощь, пожалуйста. .. !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...