部署WAR后AWS服务器卡住了

时间:2020-09-18 21:50:20

标签: spring-boot mysql-connector tomcat9 jdk14

向Tomcat 9(14.0.1 + 7-Ubuntu-1ubuntu1)部署战争之后,我得到了无限的负载和服务器砖块(在关闭/启动之后)

我正在使用基于Spring Boot Framework的Maven项目

这些是pom.xml中的依赖项

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0-M3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.events</groupId>
    <artifactId>eventsapi</artifactId>
    <version>${properties.version}</version>
    <packaging>war</packaging>
    <name>******</name>
    <description>********</description>

    <properties>
        <java.version>14</java.version>
        <version>##0.0.3</version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
    <finalName>${artifactId}${version}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

</project>

如果我删除mysql-connector-java,则部署工作正常,因此我认为这是数据库Issue或类似的问题。 我试图删除将排除类添加到SpringBootApplication的Auto DB连接

@SpringBootApplication
@EnableAutoConfiguration(exclude = {
        DataSourceAutoConfiguration.class, 
        DataSourceTransactionManagerAutoConfiguration.class, 
        HibernateJpaAutoConfiguration.class
})
public class EventsapiApplication extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(EventsapiApplication.class);
    }
    
    public static void main(String[] args) {
        SpringApplication.run(EventsapiApplication.class, args);
    }

}

但是战争仍使服务器无法访问。

我使用了单个RestController,如下所示

@RestController
public class TestController {

    @GetMapping("")
    public Boolean test () {
        return Boolean.TRUE;
    }
    
    @GetMapping("/list")
    public ArrayList<String> test2 () {
        return testConnection();
    }
    
    public ArrayList<String> testConnection() {
        
        String sqlSelectAllPersons = "SELECT * FROM events.organization";
        String connectionUrl = "jdbc:mysql://localhost:3306/****";
    
        try     
         {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection(connectionUrl, "*****", "******"); 
            PreparedStatement ps = conn.prepareStatement(sqlSelectAllPersons); 
            ResultSet rs = ps.executeQuery();
                ArrayList<String> test = new ArrayList<String>();
            
                while (rs.next()) {
                    String name = rs.getString("name");
                    test.add(name);
                    // do something with the extracted data...
                }
                return test;
        } catch (SQLException e) {
            // handle the exception
            ArrayList<String> test = new ArrayList<String>();
            test.add(e.getMessage());
            return test;
        } catch (ClassNotFoundException e) {
            ArrayList<String> test = new ArrayList<String>();
            test.add(e.getMessage());
            return test;
        }

    }
    
}

0 个答案:

没有答案
相关问题