【发布时间】:2018-11-16 23:19:33
【问题描述】:
我正在尝试打包我的 Spring Boot 应用程序,以便我可以将它部署在 tomcat 服务器上。观看 youtube 视频后,我扩展了 SpringBootServletInitializer 类并进行了一些更改。
@ComponentScan("com.infodev.loksewa")
@SpringBootApplication
public class LoksewaApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(LoksewaApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(LoksewaApplication.class);
}
}
pox.xml
<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.infodev</groupId>
<artifactId>loksewa</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>loksewa</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</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-thymeleaf</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.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>psclockunlock</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
pom.xml 将无法自动导入 ojdbc jar 文件,因此我手动添加了该 jar 文件,如下所示:-
当我在我的 IDE (Intellij Idea) 上运行应用程序时,它运行成功。但是现在我需要将它打包为war文件并将其部署在我的tomcat服务器上。所以当我从 intellij 打包时,我收到一个错误,提示无法加载驱动程序。
Caused by: java.lang.IllegalStateException:
Cannot load driver class: oracle.jdbc.driver.OracleDriver
在打包应用程序时我应该把这个 ojdbc jar 文件放在哪里?
【问题讨论】:
-
你在
pom.xml中做了什么来将jar添加到项目中?您可能需要将该库添加到your repository。 -
请检查我的 pom.xml
-
所以答案是什么 - 你没有做任何事情来告诉 Maven 你的依赖,你很惊讶 Maven 没有找到它?
-
那我该怎么做呢?
-
查看this tutorial,了解如何使用 Oracle 驱动程序使用 Tomcat 配置你的 fat jar。
标签: java spring-boot intellij-idea