简体   繁体   English

Spring,AWS,访问远程DB:java.lang.AbstractMethodError:null org.springframework.core.OrderComparator.findOrder(OrderComparator.java:142)

[英]Spring, AWS, access remote DB: java.lang.AbstractMethodError: null at org.springframework.core.OrderComparator.findOrder(OrderComparator.java:142)

Spring boot: I'm trying to access MySQL database on AWS Spring boot:我正在尝试访问AWS上的MySQL数据库

It works fine with local DB and I can connect to MySQL DB on AWS through MySQL Workbench. 它适用于本地数据库,我可以通过MySQL Workbench连接到AWS上的MySQL数据库。 Now I'm trying to start my local app to connect remote DB on AWS, and get the following errors: 现在我正在尝试启动我的本地应用程序来连接AWS上的远程数据库,并收到以下错误:

java.lang.AbstractMethodError: null
at org.springframework.core.OrderComparator.findOrder(OrderComparator.java:142) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.core.annotation.AnnotationAwareOrderComparator.findOrder(AnnotationAwareOrderComparator.java:65) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.core.OrderComparator.getOrder(OrderComparator.java:125) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.core.OrderComparator.getOrder(OrderComparator.java:113) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.core.OrderComparator.doCompare(OrderComparator.java:82) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.core.OrderComparator.compare(OrderComparator.java:68) ~[spring-core-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:360) ~[na:na]
at java.base/java.util.TimSort.sort(TimSort.java:220) ~[na:na]
at java.base/java.util.Arrays.sort(Arrays.java:1514) ~[na:na]
at java.base/java.util.ArrayList.sort(ArrayList.java:1585) ~[na:na]
at org.springframework.boot.SpringApplication.asUnmodifiableOrderedSet(SpringApplication.java:1344) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.getListeners(SpringApplication.java:1253) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.context.event.EventPublishingRunListener.contextLoaded(EventPublishingRunListener.java:85) ~[spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplicationRunListeners.contextLoaded(SpringApplicationRunListeners.java:66) ~[spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:408) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at com.xxsc.myapp.MyAppApplication.main(MyAppApplication.java:23) [classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.0.5.RELEASE.jar:2.0.5.RELEASE]

My pom.xml: 我的pom.xml:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-context</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>       
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-aws-jdbc</artifactId>
    </dependency>

My application.properties: 我的application.properties:

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.thymeleaf.cache = false

My MyApplication.java 我的MyApplication.java

@SpringBootApplication
@EnableRdsInstance(databaseName="xxx", dbInstanceIdentifier="xxx", username="xxx", password="xxx")
@EnableContextRegion(region="xxx")
@EnableContextCredentials(accessKey="xxx", secretKey="xxx")
public class MyAppApplication {
public static void main(String[] args) {
    SpringApplication.run(MyAppApplication.class, args);
}
@Bean
public RdsInstanceConfigurer instanceConfigurer() {
    return new RdsInstanceConfigurer() {

        @Override
        public DataSourceFactory getDataSourceFactory() {
            TomcatJdbcDataSourceFactory dataSourceFactory = new TomcatJdbcDataSourceFactory();

            dataSourceFactory.setInitialSize(2);
            dataSourceFactory.setMaxActive(15);
            dataSourceFactory.setValidationQuery("SELECT 1");
            dataSourceFactory.setTestOnBorrow(true);

            return dataSourceFactory;
        }
    };
}

} }

I was using the wrong dependency, it should be: 我使用了错误的依赖,它应该是:

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-aws-context</artifactId>
</dependency>
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-aws-jdbc</artifactId>
</dependency>       

in the application.properties I need to use 在我需要使用的application.properties中

spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect. 

(the default version of MySql on Amazon for t2.micro is l5.6) (亚马逊上针对t2.micro的MySql的默认版本是l5.6)

It works for me. 这个对我有用。

BTW, I need to create an account under My Security Credentials attached from a group with AmazonRDSFullAccess permissions of course. 顺便说一句,我需要在具有AmazonRDSFullAccess权限的组附加的My Security Credentials下创建一个帐户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ClassNotFoundException:org.springframework.core.OrderComparator $ OrderSourceProvider - ClassNotFoundException: org.springframework.core.OrderComparator$OrderSourceProvider Spring 启动:java.lang.AbstractMethodError:接收器类 org.springframework.jms.config.JmsListenerEndpointRegistry - Spring boot : java.lang.AbstractMethodError: Receiver class org.springframework.jms.config.JmsListenerEndpointRegistry java.lang.AbstractMethodError - java.lang.AbstractMethodError 春季安全java.lang.AbstractMethodError - spring security java.lang.AbstractMethodError Spring MVC:java.lang.AbstractMethodError - Spring mvc: java.lang.AbstractMethodError java.lang.AbstractMethodError:org.apache.commons.dbcp.PoolingDataSource - java.lang.AbstractMethodError: org.apache.commons.dbcp.PoolingDataSource 春季:由于名称java.lang.AbstractMethodError,创建名称为&#39;entityManagerFactory&#39;的bean时出错:null - Spring: Error creating bean with name 'entityManagerFactory' caused by: java.lang.AbstractMethodError: null 休眠搜索依赖项异常java.lang.AbstractMethodError:null - Hibernate search dependency exception java.lang.AbstractMethodError: null 部署应用程序时发生java.lang.AbstractMethodError(Spring 4 MVC + Hibernate 4/5) - java.lang.AbstractMethodError deploying an application (Spring 4 MVC+Hibernate 4/5) 带有Spring的Hadoop抛出java.lang.AbstractMethodError异常 - Hadoop with Spring throwing java.lang.AbstractMethodError exception
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM