程序是练出来的

专注JAVA,JavaScript,Python,三剑走天涯。 软素质:忠心、追求、进取、态度、方法、恒心、坚持

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

你是否遇到过这些问题,自己的javaweb项目本地运行一切正常,但是一旦转移到阿里服务器之类的.就出现以下问题.

1 jsp无法解析java类 

2 Only a type can be imported. XXXXXXX resolves to a package 像这样的瘟疫一样的报错

3 <%@ page import="引用的java类"%> 就是用不了,报错.

4   Unable to compile class for JSP

 

如果有以上的问题,你肯定已经备受折磨和蹂躏希望这里是终点.

前提是之前在自己本机测试后已经没有问题了,这就说明,项目里面的java,servlet,jsp,html等等的语法逻辑没有问题了.像有这些语法错误的和mysql-connector-java-5.1.39这样包没有安装好的,属于低级类错误,不费口舌.查查百度好解决. 

 网上好多说什么版本相冲突,什么tomcat一定要比jdk的版本大或者等于.有一定道理也能解决一些人问题,但是没有说到实质.上述四个问题的人依然解脱不了苦海还要忍受着折磨.

 

 现在我告诉你问题的实质,就是你的Java类线上服务器不认.找不到!跟环境有直接关系,很有可能的就是服务器上你没有部署JDK,环境就是一张破网,最头疼.只要一个地方没到位就会出错.而且很隐藏,不容易发现问题实质.有jdk和tomcat的版本冲突,也有windows环境和Linux环境之间的冲突.最彻底的从根上解决问题,就是JDk和tomcat版本统一,windows版本和Linux 版本不要掺和分清楚,找到对应的版本把环境从新部署一下.才可以彻底解决问题.详细看下文!

 

如何控制我的云服务器?怎么用电脑和它传输文件呢?

  是否有软件可以满足我控制云服务器的需求?我想用电脑和它传输文件怎么办?

 

答:的确有满足你需求的软件。那么我就向你推荐两款好用的软件并简单介绍一下这两个软件作用:

 

(1)a.控制云服务器软件:Xshell                 b.能和电脑传输的软件:Xftp

 

(2)我简单介绍一下这两款软件。Xshell:能在Windows界面下访问远端不同系统下的服务器。简单来说,你可以通过这款软件控制云服务器ECS。Xftp:基于 MS windows平台的功能强大的SFTPFTP文件传输软件。简单来说,通过这款软件你可以在你的电脑和云服务器之间传输文件。

 


 

PS:还有很多能实现类似功能的软件。如果你想了解更多,推荐你看看Putty、XShell、SecureCRT、SSH Secure Shell Slient哪个好用?

 

3.2 我觉得Xshell和Xftp不错!那我应该从哪里下载它们呢?

 

答:我都帮你整理好了。下面就贴出两个软件的下载地址:

 

Xshell:Xshell官方下载链接

 

Xftp:Xftp官方下载链接

 

PS:这两个文件下载好了后免安装,双击即可运行。

 

3.3 软件都下载好了!怎么使用Xshell和Xftp啊?

 

答:别着急,按照我下面步骤一步步做:

 

(1)运行Xshell。

 

(2)新建会话属性,详细步骤请看下图3.32。

 
图3.32 新建会话属性

(3)连接会话,具体看下图3.33。

 
图3.33 连接会话

(4)输入用户名,具体看下图3.34。

 
图3.34 输入用户名

(5)输入密码,具体看下图3.35。注意:如果你忘记或者未设置你的密码可进入ECS控制台-实例列表-重置密码。重置密码成功后记得重启服务器。

 
图3.35 输入密码

(6)成功连接界面如下图3.36。

 
图3.36 成功连接服务器

(7)登录Xpft。这里介绍两种方法。a.点击Xshell上方导航栏的窗口-传输新建文件即可快速免密运行Xpft软件,具体看下图3.37。b.直接运行Xpft,输入用户名和密码后即可连接服务器。

 
图3.37 运行Xftp

(8)Xftp运行界面如下图3.38。

 
图3.38 Xftp运行界面

如何在云服务器下部署Java Web项目?

 

4.1 在云服务器下部署 Java一共提供几种方式?不同方式优缺点是什么?

 

答:一共三种方式。这三种方式分别是Java镜像部署一键安装包部署手动部署。前两种方式优点是方便快捷,缺点是要花钱!而且价格个人觉得不便宜,Java镜像部署一个月要¥80,一键安装包部署虽然一次只要5块,但是本文作者没试过也就不好评价。而手动部署方式的优缺点正好与前两种方式相反,它优点是免费同时修炼了你的技术,缺点就是稍微费事了点。

 

4.2 我该选择哪种方式部署Java项目呢?

 

答:(1)如果你不差钱或者时间紧迫的话,你可以选择Java镜像部署或一键安装包部署。因为我没试过这两种方式,所以具体就不介绍了。具体操作方式请看阿里云官方介绍Java镜像部署一键安装包部署。(2)如果你倾向于修炼技术的话,你还是选择手动部署吧,而我个人也推荐这个部署方式,下文我将详细介绍怎样手动部署

 

4.3 手动部署需要做什么准备工作呢?

 

答:你需要下载在Java jdk安装包和Tomcat。我下面给出它们的官方下载链接:

 

Java jdk:Java jdk官方下载链接(下载“jdk-序号-linux-x64.tar.gz”版本)

 

TomcatTomcat官方下载链接(点击首页左侧Tomcat 8,下载“tar.gz (pgp, md5, sha1)”)

 

4.4 jdk安装包我都下载好了,我该怎么安装jdk呢?

 

答:(1)首先打开Xshell和Xftp,用Xftp在云服务器创建文件夹,具体做法如下图4.41。

 
图4.41 创建文件夹

(2)将jdk安装包和tomcat安装包复制粘贴到云服务器对应的文件夹下。

(3)在Xshell输入指令,解压jdk安装包到指定文件夹,解码指令如下图4.43:

 

#tar -xvf jdk-版本编号-linux-x64.tar.gz-C/usr/java/jdk/

 
图4.43 解压指令

(4) 解压完毕后jdk文件夹里会有对应文件,开始配置环境变量,如下图4.44,具体指令如下:

 

# sudo vi /etc/profile

 export JAVA_HOME=/usr/java/jdk/jdk版本编号_121

 export JRE_HOME=/usr/java/jdk/jdk版本编号_121/jre

 export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH

 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH

 
图4.44 配置环境变量

编辑完内容后,按下Esc键,并输入“:wq”,然后回车可以保存退出。

(5)保存完毕后输入下面指令:

#source /etc/profile

(6)验证是否成功,如下图4.46,输入下面验证指令:

 

# java -version

 
图4.46 jdk安装成功

4.5 jdk安装好了,那tomcat又要如何安装?

答:别着急!tomcat安装要轻松许多,具体安装步骤如下:

(1)解压tomcat,解压指令如下:

 

# tar -xvf apache-tomcat-版本编号.tar.gz -C /usr/java/tomcat/

 
图4.51 解压tomcat

(2)进入解压文件夹下的bin文件夹,指令如下:

 

#cd  /usr/java/tomcat/apache-tomcat-版本编号/bin/

 
图4.52 进入指定文件夹

(3)编辑setclasspath.sh 脚本,指令如下:

# sudo vi setclasspath.sh

(4) 添写如下内容:

export JAVA_HOME=/usr/java/jdk/jdk版本编号

export JRE_HOME=/usr/java/jdk/jdk版本编号/jre

(5)保存编辑内容,按下Esc键,并输入“:wq”,然后回车可以保存退出。

(6)启动tomcat,指令如下:

 

 #./startup.sh

 
图4.56 开启tomcat

 

4.6 jdk和tomcat都弄好了,接下来可以用浏览器访问我的云服务器吗?

 

答:当然可以!你可以从浏览器访问,输入http://云服务器的ip:8080就能访问啦!效果如下图4.6。

 
图4.6 访问成功

 

4.7 我部署自己的项目怎么做?

 

答:将项目上传到 Tomcat文件夹下的 Webapps 文件夹里就行。上传好了后,浏览器访问即可。例如:http://云服务器ip地址:8080/index/one.html等。

 
图4.7 部署自己项目

 

4.8 怎么通过我的域名访问我的网站呢?

 

答:别着急,你需要解析你的域名。你先登录阿里云,再控制台点击域名与网站(万网)下的域名,然后点击解析,请看下图4.8。解析好了后在浏览器输http://www.域名.com:8080即可访问。

 
图4.8 解析域名

 

 

 

 开机自启动Tomcat:

进入Tomcat的bin目录:# cd /usr/tomcat/apache-tomcat-9.0.13/bin

  :#  ls

可以看到有一个startup.sh脚本文件,用来启动tomcat服务:./startup.sh

6.在浏览器中进行访问:http://ip地址:端口号(默认8080)

 

每次开机都要启动tomcat,网上看了好多都是用shell脚本来实现tomcat开机自启动,后来看到一种方法,直接修改系统文件来实现,已经实践过,方法有效。

1.修改脚本文件rc.local:vim /etc/rc.d/rc.local

  这个脚本是使用者自定的开机启动程序,可以在里面添加想在系统启动之后执行的脚本或者脚本执行命令

2.添加如下内容:

  export JAVA_HOME=/usr/java/jdk1.8.0_131

  /usr/tomcat/apache-tomcat-9.0.13/bin/startup.sh start

 

 

3.esc 退出编辑,:wq 保存修改

4.将rc.local修改为可执行

  chmod 777 /etc/rc.d/rc.local

 

 

 

 JSP环境 下面就安装一个MySQL就行了

CentOS7 yum方式安装MySQL5.7

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

1 下载并安装MySQL官方的 Yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

  使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

  之后就开始安装MySQL服务器。

[root@localhost ~]# yum -y install mysql-community-server

  这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

至此MySQL就安装完成了,然后是对MySQL的一些设置。

2 MySQL数据库设置

  首先启动MySQL

[root@localhost ~]# systemctl start  mysqld.service

  查看MySQL运行状态,运行状态如图:

[root@localhost ~]# systemctl status mysqld.service

  此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

[root@localhost ~]# grep "password" /var/log/mysqld.log

  如下命令进入数据库:

[root@localhost ~]# mysql -uroot -p

  输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

  这里有个问题,新密码设置的时候如果设置的过于简单会报错:

  原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:

 

  MySQL完整的初始密码规则可以通过如下命令查看:

复制代码
复制代码
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
复制代码
复制代码

  密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

 

我的是已经修改过的,初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

  设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如1234之类的。到此数据库的密码设置就完成了。

  但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch

  此时才算真的完成了。

 




 

posted on 2018-12-02 17:01  爱学习的小象  阅读(3164)  评论(0编辑  收藏  举报