从零开始部署本地javaweb项目项目到云服务器,亲测可用
前言
本文记录了如何将本地javaweb项目部署到腾讯云服务器上,环境为IDEA2020.3.2,本地环境为windows10系统,云服务器为ubuntu18系统。项目为安卓手机和服务器建立socket连接通信,用于基本通信环境的测试学习。话不多说,下面开始
一、在本地tomcat发布测试
1.为javaweb项目配置Servlet
为了使得项目中的class可以自启动,需要添加Servlet接口。
为需要处理的类继承HttpServlet,并添加init方法。
public class TestServer extends HttpServlet{
public void init(){
System.out.println("web容器已经启动!");
TestServer server = new TestServer();
server.initServer();
}
在web.xml中配置Servlet
<servlet>
<servlet-name>TestServer</servlet-name>
<servlet-class>com.example.comm.TestServer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestServer</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
配置完成后,可以在IDEA中使用tomcat测试结果
2. 导出javaweb项目为war包
点击File->Project Structure->Artifacts, 点击中间栏+号,添加Web Application:Archive项目,更改名字后双击添加所有的Available elements,点击apply,OK
点击Build->Build Artifacts, 即可以在对应目录下找到生成的war包
可以将war包复制到tomcat的webapp文件夹下,启动tomcat后,war包将自动解压成文件夹运行。此时,可以再次测试运行结果。
二、配置云服务器
1. 开放腾讯云8080端口
登录后点击右上角控制台->云服务器->安全组,添加规则,放通TCP:8080端口用于tomcat,以及TCP:22端口用于linux远程登录。也可以顺便打开其他常用端口。
2.java环境tomcat配置
因为创建图形化界面出了点问题,所以jdk和tomcat的安装压缩包直接通过windows上传。
使用putty中的pscp工具,在windows下的cmd中使用以下命令,注意前面要加上-P 22,22为端口号,同时路径中尽量不要有中文,xxxxxx部分为ip地址。
E:\Program Files\PuTTY>pscp -P 22 E:\ubuntu\apache-tomcat-8.5.64.tar.gz username@xxxxxxxx:/home/username
同理,上传jdk的tar.gz文件到home文件夹下
sudo mkdir /java //创建java目录
sudo mv jdk-8u121-linux-x64.tar.gz /java //移动文件到/java目录下
sudo tar -zxvf jdk-8u121-linux-x64.tar.gz //解压文件
sudo vim /etc/profile //配置所有用户的环境变量
在文件的最后添加:
#set Java environment
export JAVA_HOME=/java/jdk1.8.0_56
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
配置完成后使用source让配置文件生效
source /etc/profile
最后运行,查看java是否安装成功
java -version
tomcat解压安装完毕后
进入/tomcat/apache-tomcat-8.5.64/bin 文件夹下,编辑文件startup.sh,在最后一行之前加入
#set Java environment
export JAVA_HOME=/java/jdk1.8.0_56
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#tomcat
export TOMCAT_HOME=/home/username/tomcat/apache-tomcat-8.5.34
完成后保存,然后运行startup.sh启动tomcat,不过tomcat started有可能不是真正的启动成功
sudo ./startup.sh
如果需要看debug的运行结果,运行
./catalina.sh run
然后在浏览器中访问服务器地址:8080
3.java中没有jre的配置文件解决方案
由于JDK10以上的版本都没有jre文件夹,可以手动生成一个
在java根目录下执行,本文中/java/jdk-11.0.10
sudo bin/jlink --module-path jmods --add-modules java.desktop --output jre
虽然生成jre文件夹成功,但这个方法对我尝试无效
采用下面的方法:
把上面两个配置文件中的JRE_HOME都改为$JAVA_HOME
#export JRE_HOME=$JAVA_HOME/jre
#修改为
export JRE_HOME=$JAVA_HOME
此时,在本地浏览器中访问服务器地址:8080, tomcat启动成功
三、项目部署到云服务器上
使用pscp将war包上传到服务器上,把war包使用cp命令拷贝到tomcat的webapps文件夹下,启动tomcat。
打开浏览器,输入ip地址:8080/war包的名称,javaweb程序就可以自动运行啦!通信测试成功。
文章中安卓端和后台端的socket代码,参考以下链接
https://blog.csdn.net/aqi00/article/details/86421940