小编Ste*_*ven的帖子

索引未找到例外

所以,又回来了

我有一个JHipster生成的项目,它使用elasticsearch java嵌入的客户端spring boot.

我最近对数据集做了一些重大更改,因为我们一直在从不同的存储库迁移一大堆新数据

部署应用程序时,一切正常,所有SearchRepositories加载都没有问题,所有搜索功能都顺利进行

从测试环境运行时会出现问题.对application-test.yml文件和elasticsearchjava配置文件没有任何改变.

我们有一些更新索引的代码,我已经运行了好几次,它似乎更新了clusters indices就好了,但我痛苦的地方在target文件夹中,它只是不会创建新的索引

在测试模式下运行时,有12个索引无法进入目标文件夹,但是ResourceIntTest由于标题中提到的错误,其中只有5个失败了

我不想用数百个不相关的代码行填写这篇文章,所以现在只需包含有助于测试不会失败的变通方法:

initTest5个失败的测试用例中,如果我写下面的行(显然在每个不同的情况下更改类名):

surveyDataQualitySearchRepository.save(surveyDataQualityRepository.findAll());
Run Code Online (Sandbox Code Playgroud)

然后索引将创建自己并且测试用例不会失败,但是这不需要手动执行,应该在部署时调用类中的resetIndex方法时创建它IndexReinitializer

resetIndex:

@PostConstruct
public void resetIndex() {
        long t = currentTimeMillis();
        elasticsearchTemplate.deleteIndex("_all");
        t = currentTimeMillis() - t;
        logger.debug("ElasticSearch indexes reset in {} ms", t);
    }
Run Code Online (Sandbox Code Playgroud)

注释这段代码也允许加载所有索引,但是不应该对它进行评论,因为它可以作为索引的更新程序,而且它在仍然指向旧数据集的旧版本应用程序中工作正常.

所有的帮助将非常受欢迎,我已经在这几乎整整一天,现在试图了解错误的来源,我也非常乐意上传任何可能与愿意帮助的人相关的代码片段这里.

编辑通过注释为索引重建添加代码

@Test
    public void synchronizeData() throws Exception{
        resetIndex();
        activePharmaIngredientSearchRepository.save(activePharmaIngredientRepository.findAll());
        countrySearchRepository.save(countryRepository.findAll());
        dosageUnitSearchRepository.save(dosageUnitRepository.findAll());
        drugCategorySearchRepository.save(drugCategoryRepository.findAll());
        drugQualityCategorySearchRepository.save(drugQualityCategoryRepository.findAll());

        formulationSearchRepository.save(formulationRepository.findAll());
        innDrugSearchRepository.save(innDrugRepository.findAll());
        locationSearchRepository.save(locationRepository.findAll()); …
Run Code Online (Sandbox Code Playgroud)

java elasticsearch jhipster spring-data-elasticsearch

7
推荐指数
1
解决办法
1278
查看次数

java.lang.NoClassDefFoundError:org/springframework/beans/factory/config/EmbeddedValueResolver

我最近成功升级了一个jhipster生成的应用程序(Spring Boot + Angular)

在清理代码并调整一些注释之后出现问题,现在我在做maven clean - install skipping tests时获得成功但是当我尝试启动应用程序时,我得到了标题中提到的错误

我已经检查了pom是否存在重复的依赖项,并且清除了属性文件,结果没有结果

这是完整的错误:

2017-11-30 10:12:57.821  INFO 4320 --- [  restartedMain] o.w.d.DrugQualityDataManagerApp          : Starting DrugQualityDataManagerApp on steven-OptiPlex-7040 with PID 4320 (/home/steven/Desktop/Upgraded_MQ/target/classes started by steven in /home/steven/Desktop/Upgraded_MQ)
2017-11-30 10:12:57.821  INFO 4320 --- [  restartedMain] o.w.d.DrugQualityDataManagerApp          : The following profiles are active: swagger,dev
2017-11-30 10:12:57.874 ERROR 4320 --- [  restartedMain] o.s.boot.SpringApplication               : Application startup failed

java.lang.NoClassDefFoundError: org/springframework/beans/factory/config/EmbeddedValueResolver
    at org.springframework.context.support.ApplicationContextAwareProcessor.<init>(ApplicationContextAwareProcessor.java:72)
    at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:634)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:518)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
    at org.wwarn.drugquality.DrugQualityDataManagerApp.main(DrugQualityDataManagerApp.java:66) …
Run Code Online (Sandbox Code Playgroud)

java spring maven spring-boot jhipster

2
推荐指数
1
解决办法
2万
查看次数

Angular HttpClient调用被忽略

所以,我有一个Jhipster生成的应用程序.

在其中我们有许多实体,前端和后端都有"默认"方法

其中一个方法是create,在本例中是实体ActivePharmaIng,这是角度服务类中的代码:

create(activePharmaIng: ActivePharmaIng): Observable<ActivePharmaIng> {
  const copy = this.convert(activePharmaIng);
  return this.http.post(this.resourceUrl, copy).map((res: Response) => {
    const jsonResponse = res.json();
    return this.convertItemFromServer(jsonResponse);
  });
}
Run Code Online (Sandbox Code Playgroud)

所以,这个代码就像它在实体区域中使用的魅力一样,但是,当我尝试在一个模态中重用它时,我从一个用(单击)调用的函数调用它,该函数的代码:

saveNewApi(api: ActivePharmaIng) {
  this.activePharmaIngDTO.api = this.activePharmaIng;
  this.activePharmaIngService.create(api);
  this.show = false;
}
Run Code Online (Sandbox Code Playgroud)

在第二行中我们可以看到创建调用,在调试时我看到函数被无缝调用,并且只是在尝试执行调用后直接跳转到create函数

我没有任何错误消息的痕迹,没有使用IntelliJ调试,不是在谷歌开发人员工具栏中,在控制台和网络区域尝试,而不是单个消息.它只是跳转到下一行,这是一个布尔值,当设置为false时会隐藏表单的某些div:

http jhipster angular

2
推荐指数
1
解决办法
1188
查看次数

GWT ListBox在浏览器之间呈现不同

所以,我为GWT应用程序提供了ListBox的自定义实现

它的xml代码如下所示:

<g:FlowPanel addStyleNames="{style.yearRangePanel}">
        <g:FlowPanel addStyleNames="{style.rangeSeparator} {style.paddingTop}">
            <g:Label addStyleNames="{style.horizontalAlign}" ui:field="integerRangeDropdownLabel">Filter studies by range of enroled patients: </g:Label>
            <g:Label addStyleNames="{style.prefixSpace} {style.horizontalAlign}" ui:field="startSampleSizeLabel"/>
        </g:FlowPanel>
        <g:FlowPanel ui:field="integerRangeDropdownFilterPanel" addStyleNames="{style.yearRangeSliderPanel} {style.paddingTop}">
            <g:ListBox ui:field ="integerRangeDropdownListBox" styleName="{style.customListBox}"/>
        </g:FlowPanel>
    </g:FlowPanel>
Run Code Online (Sandbox Code Playgroud)

它的主要java代码如下:

 @UiConstructor
    public IntegerRangeDropdownFilterComposite (String fieldName, String labelText){
        this.initWidget(uiBinder.createAndBindUi(this));

        filterChangedEvent = new FilterChangedEvent(fieldName);

        FilterConfig filterConfig = clientFactory.getApplicationContext().getConfig(FilterConfig.class);
        List<FilterSetting> filterSettings = filterConfig.getFilterConfigBy(fieldName);
        FilterSetting filterSetting = filterSettings.get(0);
        filterByIntegerRangeSettings = (FilterConfig.FilterByIntegerRangeSettings) filterSetting;

        this.increment = Integer.toString(filterByIntegerRangeSettings.getIncrement());
        this.minSampleSize = Integer.toString(filterByIntegerRangeSettings.getInitialValue());
        this.maxSampleSize = Integer.toString(filterByIntegerRangeSettings.getEnd());

        this.setupConfig(fieldName);
    }

    private void setupConfig(String fieldName){
        setupRange(fieldName);
    }

    @Override
    protected …
Run Code Online (Sandbox Code Playgroud)

css firefox gwt listbox twitter-bootstrap

0
推荐指数
1
解决办法
151
查看次数