Linux入门:部署JavaWeb项目
所需环境:
- Java环境:jdk
- 服务器:tomcat
- 网络环境:防火墙及开放端口
java安装
- 使用 su root ,切换到root用户
- 查看yum仓库中指定包名的软件包,可以使用通配符匹配
yum list java-1.8*
- 安装应用程序
yum install java-1.8.0-openjdk.x86_64
- 安装完成后,使用java –version查看版本
tomcat安装
- windows下载最新版本的tomcat,上传安装包到远程服务器,并解压。
pscp C: \apache-tomcat-9.0.16.tar.gz root@192.168.114.28:/usr/local/tomcat
tar –xzf apache-tomcat-9.0.16.tar.gz
- 开放8080端口
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
- 启动tomcat
切换到bin目录下,执行startup.sh文件。如果没有可执行权限,使用 chmod + x startup.sh设置权限。
部署自己的SpringBoot项目
1.使用Spring Initializr创建一个最简单的SpringBoot。添加如下Controller。
@RestController
public class GreetingController {
@RequestMapping("/greeting")
public String greet() {
return "hello world ... ";
}
}
2.改写启动类,主类继承SpringBootServletInitializer子类并覆盖其configure方法。这样做利用了Spring Framework的Servlet 3.0支持,并允许在应用程序由Servlet容器启动时配置它。
@SpringBootApplication
public class RestDemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(RestDemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(RestDemoApplication.class);
}
}
3.更新pom.xml配置,使项目生成war文件,而不是jar文件。
<groupId>com.lee</groupId>
<artifactId>rest-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rest-demo</name>
<packaging>war</packaging>
4.确保嵌入的servlet容器不会干扰war文件部署到的servlet容器。为此,需要将嵌入的servlet容器排除,并引入servlet容器。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
5.使用Maven打包项目,将生成的war包拷贝到tomcat主目录webapps下,重启tomcat。Windows浏览器访问http://192.168.114.128:8080/rest/greeting,输出hello world ...,说明部署成功。