将WAR部署到实时服务器时出现问题(Springboot + Thymeleaf / CentOs)

时间:2018-01-10 22:39:25

标签: java spring maven tomcat centos

我正在尝试将简单的Web应用程序部署到我的centOs服务器(Digital Ocean)。跟着他们的向导,我设法设置了tomcat,设法登录经理,然后部署了我的战争。 Tomcat部署了它,它说好了,日志中没有任何错误。但是,当我点击应用程序链接时,它只显示 找不到HTTP状态404 ..

在我的本地tomcat服务器上测试,同样的程序,工作得很好。

主要课程

@SpringBootApplication
public class SuperiorniatletaApplication extends SpringBootServletInitializer{

    //JAR
    /*
     * public static void main(String[] args) {
     * SpringApplication.run(SuperiorniatletaApplication.class, args); }
     */


    //WAR

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SuperiorniatletaApplication.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SuperiorniatletaApplication.class, args);
    }
}

的pom.xml

....
<packaging>war</packaging>

    <name>superiorniatleta</name>
    <description>Get strong</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- MARIADB CONNECTOR -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>


        <!-- USED FOR LIVE WITH SCOPE WAR -->
      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>   

    </dependencies>

    <build>
        <plugins>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
         <finalName>Superiorni-Atleta</finalName>
    </build>


</project>

application.properties

spring.datasource.url=jdbc:mariadb://localhost:3306/atleta_db
spring.datasource.username=atleta_admin
spring.datasource.password=******
spring.datasource.driverclassName=org.mariadb.jdbc.Driver
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

spring.http.multipart.max-file-size=20000KB
spring.http.multipart.max-request-size=20000KB


# ===============================
# = JPA / HIBERNATE
# ===============================
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = create-drop
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

spring.queries.users-query=select email, password, active from user where email=?
spring.queries.roles-query=select u.email, r.role from user u inner join user_role ur on(u.user_id=ur.user_id) inner join role r on(ur.role_id=r.role_id) where u.email=?

检查MariaDb,它在本地端口3306上,尝试使用atleta_admin凭据登录,工作正常......我似乎无法找到问题,我认为它与CentOs本身有关?任何帮助将非常感激!谢谢!

尝试更改tomcat本身的文件权限但没有成功,还尝试上传我之前的项目,该项目已经处理了另一个具有相同结果的Droplet ..

1 个答案:

答案 0 :(得分:0)

似乎较新版本的tomcat限制了服务器本身的连接。不得不进去 /opt/tomcat/webapps/manager/META-INF/context.xml 并删除

<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->

在上下文中。希望这有助于某人!