你是否遇到過這些問題,本身的javaweb項目本地運行一切正常,可是一旦轉移到阿里服務器之類的.就出現如下問題.
1 jsp沒法解析java類 html
2 Only a type can be imported. XXXXXXX resolves to a package 像這樣的瘟疫同樣的報錯java
3 <%@ page import="引用的java類"%> 就是用不了,報錯.mysql
4 Unable to compile class for JSPlinux
若是有以上的問題,你確定已經備受折磨和蹂躪但願這裏是終點.web
前提是以前在本身本機測試後已經沒有問題了,這就說明,項目裏面的java,servlet,jsp,html等等的語法邏輯沒有問題了.像有這些語法錯誤的和mysql-connector-java-5.1.39這樣包沒有安裝好的,屬於低級類錯誤,不費口舌.查查百度好解決. sql
網上好多說什麼版本相沖突,什麼tomcat必定要比jdk的版本大或者等於.有必定道理也能解決一些人問題,可是沒有說到實質.上述四個問題的人依然解脫不了苦海還要忍受着折磨.
如今我告訴你問題的實質,就是你的Java類線上服務器不認.找不到!跟環境有直接關係,頗有可能的就是服務器上你沒有部署JDK,環境就是一張破網,最頭疼.只要一個地方沒到位就會出錯.並且很隱藏,不容易發現問題實質.有jdk和tomcat的版本衝突,也有windows環境和Linux環境之間的衝突.最完全的從根上解決問題,就是JDk和tomcat版本統一,windows版本和Linux 版本不要摻和分清楚,找到對應的版本把環境重新部署一下.才能夠完全解決問題.詳細看下文!
如何控制個人雲服務器?怎麼用電腦和它傳輸文件呢?
是否有軟件能夠知足我控制雲服務器的需求?我想用電腦和它傳輸文件怎麼辦?shell
答:的確有知足你需求的軟件。那麼我就向你推薦兩款好用的軟件並簡單介紹一下這兩個軟件做用:數據庫
(1)a.控制雲服務器軟件:Xshell b.能和電腦傳輸的軟件:Xftpapache
(2)我簡單介紹一下這兩款軟件。Xshell:能在Windows界面下訪問遠端不一樣系統下的服務器。簡單來講,你能夠經過這款軟件控制雲服務器ECS。Xftp:基於 MS windows平臺的功能強大的SFTP、FTP文件傳輸軟件。簡單來講,經過這款軟件你能夠在你的電腦和雲服務器之間傳輸文件。vim
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)鏈接會話,具體看下圖3.33。
(4)輸入用戶名,具體看下圖3.34。
(5)輸入密碼,具體看下圖3.35。注意:若是你忘記或者未設置你的密碼可進入ECS控制檯-實例列表-重置密碼。重置密碼成功後記得重啓服務器。
(6)成功鏈接界面以下圖3.36。
(7)登陸Xpft。這裏介紹兩種方法。a.點擊Xshell上方導航欄的窗口-傳輸新建文件便可快速免密運行Xpft軟件,具體看下圖3.37。b.直接運行Xpft,輸入用戶名和密碼後便可鏈接服務器。
(8)Xftp運行界面以下圖3.38。
如何在雲服務器下部署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」版本)
Tomcat:Tomcat官方下載連接(點擊首頁左側Tomcat 8,下載「tar.gz (pgp, md5, sha1)」)
4.4 jdk安裝包我都下載好了,我該怎麼安裝jdk呢?
答:(1)首先打開Xshell和Xftp,用Xftp在雲服務器建立文件夾,具體作法以下圖4.41。
(2)將jdk安裝包和tomcat安裝包複製粘貼到雲服務器對應的文件夾下。
(3)在Xshell輸入指令,解壓jdk安裝包到指定文件夾,解碼指令以下圖4.43:
#tar -xvf jdk-版本編號-linux-x64.tar.gz-C/usr/java/jdk/
(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
編輯完內容後,按下Esc鍵,並輸入「:wq」,而後回車能夠保存退出。
(5)保存完畢後輸入下面指令:
#source /etc/profile
(6)驗證是否成功,以下圖4.46,輸入下面驗證指令:
# java -version
4.5 jdk安裝好了,那tomcat又要如何安裝?
答:彆着急!tomcat安裝要輕鬆許多,具體安裝步驟以下:
(1)解壓tomcat,解壓指令以下:
# tar -xvf apache-tomcat-版本編號.tar.gz -C /usr/java/tomcat/
(2)進入解壓文件夾下的bin文件夾,指令以下:
#cd /usr/java/tomcat/apache-tomcat-版本編號/bin/
(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.6 jdk和tomcat都弄好了,接下來能夠用瀏覽器訪問個人云服務器嗎?
答:固然能夠!你能夠從瀏覽器訪問,輸入http://雲服務器的ip:8080就能訪問啦!效果以下圖4.6。
4.7 我部署本身的項目怎麼作?
答:將項目上傳到 Tomcat文件夾下的 Webapps 文件夾裏就行。上傳好了後,瀏覽器訪問便可。例如:http://雲服務器ip地址:8080/index/one.html等。
4.8 怎麼經過個人域名訪問個人網站呢?
答:彆着急,你須要解析你的域名。你先登陸阿里雲,再控制檯點擊域名與網站(萬網)下的域名,而後點擊解析,請看下圖4.8。解析好了後在瀏覽器輸http://www.域名.com:8080便可訪問。
在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
此時纔算真的完成了。