小编Abz*_*han的帖子

引起:java.lang.ClassNotFoundException:org.elasticsearch.transport.Netty3Plugin

我正在使用Spring Boot 2.0.3版本,我在实例化时遇到问题org.elasticsearch.client.Client.我的代码:

Client client = new PreBuiltTransportClient(Settings.builder()
                .put("cluster.name", clustername)
                .build())
                .addTransportAddress(
new InetSocketTransportAddress(InetAddress.getByName(host), port)
);
Run Code Online (Sandbox Code Playgroud)

这段代码给我错误:

Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/transport/Netty3Plugin
at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:91) ~[transport-5.6.10.jar:5.6.10]
at kz.icode.idmatrix.config.ElasticsearchConfiguration.client(ElasticsearchConfiguration.java:56) ~[classes/:na]
at kz.icode.idmatrix.config.ElasticsearchConfiguration$$EnhancerBySpringCGLIB$$7e53ae93.CGLIB$client$0(<generated>) ~[classes/:na]
at kz.icode.idmatrix.config.ElasticsearchConfiguration$$EnhancerBySpringCGLIB$$7e53ae93$$FastClassBySpringCGLIB$$fef36179.invoke(<generated>) ~[classes/:na]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at kz.icode.idmatrix.config.ElasticsearchConfiguration$$EnhancerBySpringCGLIB$$7e53ae93.client(<generated>) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
... 99 common frames omitted
Run Code Online (Sandbox Code Playgroud)

我用org.elasticsearch:elasticsearch:5.6.10org.elasticsearch.client:client:5.6.10.

java spring elasticsearch spring-boot spring-data-elasticsearch

5
推荐指数
1
解决办法
6549
查看次数

如何在Spring Boot中为开发和生产环境划分Liquibase软件包结构?

我的包结构如下:

在此处输入图片说明

/db.changelog/db.changelod-master.xml中,我包含/db.changelog/v1/db.changelog-1.0.xml,其中,我还包括/db.changelog/v1/changeset软件包中的所有更改日志。

在我的应用程序中,我有两个配置文件:devprod,我需要根据Liquibase的“最佳实践”划分软件包的结构。有些变更日志可以在产品开发环境中使用。

另外,我可以在changeset标记中使用context属性并显式设置devprod值,但是这种解决方法不是可取的。

简单用法如下:我切换到产品概要文件,并且将不会创建某些表,或者会跳过对数据库的某些插入。

您能帮我根据Liquibase“最佳实践”重构软件包的结构吗?

java spring liquibase spring-boot liquibase-hibernate

5
推荐指数
1
解决办法
1284
查看次数

将UUID值插入PostgreSQL数据库时Liquibase问题

我正在使用 Spring Boot 2 和 Liquibase (Core 3.6.2),我的数据库是 PostgreSQL。我正在 db.changelog-master.xml 中通过此变更集创建表:

<changeSet author="system" id="1">
    <createTable tableName="test">
        <column name="id" type="UUID">
            <constraints nullable="false"/>
        </column>
        <column name="note" type="VARCHAR(4096)"/>
    </createTable>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

下一个变更集用于将 csv 文件中的值插入到此表中:

<changeSet author="system" id="2">
    <loadData encoding="UTF-8" file="classpath:liquibase/data/test.csv" quotchar="&quot;" separator="," tableName="test">
        <column header="id" name="id" type="STRING" />
       <column header="note" name="note" type="STRING"/>
    </loadData>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

如果我在列id中指定类型 UUID而不是 STRING,liquibase 会告诉我:

loadData type of uuid is not supported. Please use BOOLEAN, NUMERIC, DATE, STRING, COMPUTED or SKIP
Run Code Online (Sandbox Code Playgroud)

test.csv文件的内容:

"id","note"
"18d892e0-e88d-4b18-a5c0-c209983ea3c0","test-note"
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,liquibase 创建了表,当它尝试插入值时,我收到此消息:

ERROR: column "id" …
Run Code Online (Sandbox Code Playgroud)

java postgresql database-migration liquibase spring-boot

4
推荐指数
1
解决办法
4458
查看次数