linux下tomcat部署java web项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下tomcat部署java web项目相关的知识,希望对你有一定的参考价值。
在window下用eclipse进行开发,配置的时候只修改了tomcat里的server.xml文件
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/project" reloadable="true" docBase="E:\workspace\project\ROOT">
<Resource name="jdbc/project_db" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver" username="root" password="root"
url="jdbc:mysql://192.168.1.100:3306/project_db"/>
</Context>
docBase指向eclipse的工程目录下的ROOT。
请问现在要把项目发布在linux下应该怎么配置?必须要导出.war包吗?
不过docBase="E:\workspace\project\ROOT"要改成对应的linux目录,如放在/usr/local/project下,则这个docBase="/usr/local/project"
还有注意url="jdbc:mysql://192.168.1.100:3306/project_db"也要对应改!追问
我就是这么弄的,可是不行诶,好像找不到类
追答错误提示是什么,贴出来!
追问从这个日志看,是启动的时候就出错了,你把tomcat目录下的log目录下的日志贴一下,错误不是出在这里,是启动的时候就出错了。
或者你用catalina.sh run命令启动,然后把控制台的输出复制上来!
1:直接把整个开发环境换成Linux下的,比如在Linux下安装Eclipse,Tomcat...一样可以开发,运行你的项目;
2:把windows下的java web程序通过Eclipse的file->export打包成war包,然后在Linux下部署tomcat服务器,把war包放到webapps目录下即可.
具体的server.xml文件,你要根据Linux的系统目录进行修改.追问
服务器是租的阿里云,只是用来发布项目,那就只能打包成war包了?
追答既然是租用别人的服务器,那就只能打成war包了,而且,具体的配置文件目录,你还得了解,否则项目部署还是会报错的.
参考技术B 不用吧!把写好的代码放到linux服务器上就行了吧 参考技术C 上面写的好像是window的路径吧,如果需要配置是不是应该配置linux下面的路径,如:/home/..在linux环境下搭建java web测试环境(非常详细!!)
一.项目必备软件及基本思路
项目必备:
虚拟机:VMware Workstation (已安装linux的 CentOS6.5版本)
项目:java web项目 (必须在本地部署编译后选择项目的webRoot,改为ROOT(ROOT包含下面四个关键文件),放到tomcat下的webapps下即可,因为tomcat启用一个工程的时候,就是发布了除了JSP以外的,所有已被编译过的java文件,所以只能放在本地部署生成编译后的class文件)。
java环境配置:配置JDK
服务器:tomcat
数据库:MySQL
基本思路:(特别注意各处的编码设置)
1.配置java环境(下载jdk并配置环境变量)
2.下载并安装tomcat (设置tomcat编码)
3.安装mysql并导入sql(注意:mysql客户端和服务器端编码设置,必须设置完再导入sql,这个折腾了好久)
4.项目导入并修改数据库连接配置
5.启动mysql,启动tomcat,访问即可!
VMware tools小介绍:
现在的centOS已安装了VMware tools (实现主机和虚拟机之间文件的共享拖拽功能),其余项目所需都没有安装。只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按ctrl+alt),且虚拟机屏幕也可实现全屏化。
二.具体操作
1.判断是否可以连网
(我用的是NAT模式,只要宿主主机(相当于路由器)网络通,只要配置DNS即可,这种只能在虚拟机本地访问,在宿主主机无法访问到内部项目。改用DHCP桥接模式即可,具体见 http://blog.csdn.net/heirenheiren/article/details/17795951)
>ifconfig (查找虚拟机主机ip) eth0表示现在用的网卡名称
>ping www.baidu.com (看网路是否通)
如何设置centOS上网?详见
http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/05/3001148.html 结合
http://jingyan.baidu.com/article/fc07f9891d186512ffe51935.html
2.将centOS的yum源更新为国内的阿里云源 (方便下载和安装软件包)
第一步:备份你的原镜像文件,以免出错后可以恢复。
>mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 6 (6系列)
>wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
第三步:运行yum makecache生成缓存 (管理安装包,下次安装直接找到安装包即可)
>yum clean all
>yum makecache
3.下载java环境(java runtime environment )
(1)如果是安装 openjdk不用配置java_home 和 CLASSPATH PATH环境变量 (我们采用的是这个)
>yum search java (找到 java-1.7.0-openjdk.x86_64 )
>yum install java -1.7.0-openjdk.x86_64
>java -version //显示ok,安装配置成功
(2)安装 jdk-7u21-linux-i586.rpm (安装目录 /usr/java/jdk1.6.0_21 )
> rpm -ivh jdk-7u21-linux-i586.rpm
配置环境变量,在/etc/profile中加入JAVA_HOME CLASSPATH PATH环境变量。
[[email protected] jdk1.7.0_21]# vi /etc/profile
在最后加入
JAVA_HOME=/usr/java/jdk1.6.0_21
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
如果之前安装有opensdk,需要另外做处理。
4.下载tomcat7.0(免安装版)
(1)启动linux自带的火狐浏览器,搜索tomcat下载到桌面,解压到/usr/local
[[email protected] Desktop]# tar –xzf apache-tomcat-7.0.29.tar.gz //解压
[[email protected] Desktop]# mkdir /usr/local/tomcat //在usr/local下新建tomcat目录
[[email protected] ~]# cp –rf apache-tomcat-7.0.29 /usr/local/tomcat //拷贝至 tomcat下
(2) 设置Tomcat编码,配置Tomcat服务器编码为UTF-8:(这个很重要!!)
打开tomcat安装目录下的conf/server.xml文件,(大约在69行处)
将8080端口的<connector></connector>标签中设置成 URIEncoding=”UTF-8”。
如:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
(3) 启动Tomcat
[[email protected] bin]# ./startup.sh
使用浏览器访问 http://localhost:8080,出现tomcat默认页面,说明已经安装成功
小知识复习:
之后的项目就放在tomcat文件夹下的webapps下
*.tar.gz:tar程序打包的数据而且用gzip压缩过。
(1)-c 压缩(2)-x 解压(3)-t 查看tar的文件(4)-v 压缩的过程中显示文件名(5)-f 使用文件名,一般后面直接加文件名(6)-z 用gzip方式压缩
5.下载并安装mySQL
(1)安装mysql
>yum search mysql
>yum install mysql.x86_64 mysql-server.x86_64
(2)设置mysql密码(详情请参见 http://blog.knowsky.com/193552.htm)
缺省情况下MySQL没有设置密码
(可通过检查端口是否开启来查看MySQL是否正常启动:
[[email protected] yuanyuan]#netstat -anp|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 34693/mysqld )
> service mysqld start //启动mysql服务
> mysql -uroot -p //登录
>vim /etc/my.cnf //加上 --skip- grant-tables 跳过授权表的验证,可以直接登陆MySQL服务器
>service mysqld restart //重启mysql服务
> mysql -uroot -proot //登录,设置密码
> vim /etc/my.cnf //将跳过设置密码的注释掉
>service mysqld restart //重启
(3)设置数据库编码格式(这个非常重要)
> vim /etc/my.cnf
//设置mysql客户端和服务器端的默认编码!!!!
在[client]下添加
default-charater-set=utf8
在[mysqld]下添加
collation_server = utf8_general_ci
character_set_server = utf8
保存退出后重启mysqld
看一下效果:
mysql> show variables like ‘character_set_%‘;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
或者一开始都是latin时,使用
mysql>set character_set_database=utf8
(4)创建数据库dh_test并导入dh.sql
mysql>create database dh_test
>show database //查看是否创建成功
>mysql -uroot -p dh_test < dh.sql 或者用 mysqldump -u userName -p dabaseName > fileName.sql //导入sql
>show tables //查看表是否创建成功
>select * from user //查看中文显示是否ok
6.web项目部署,配置项目连接的数据库名和用户名密码
将项目在本地编译后,整个webroot下的文件放到linux下的/usr/local/tomcat 下的webapps下,webroot改为root
>cd ROOT/WEB-INF/classes/config/properties/database.properties
修改数据库名为dh,用户名和密码与mysql设置的一致!!!
7.启动mysql,启动tomcat
>service mysqld start
>./startup.sh
>tail -fn 300 ../logs/catalina.out
启动成功,项目发布完毕!!
在linux的火狐浏览器即可访问该项目, 输入 localhost即可
(不过需要提前在tomcat安装目录下conf/server.xml进行设置,可见 http://blog.csdn.net/defonds/article/details/4192953 )
三.相关的linux命令
普及一下wget,rpm和yum的区别和使用
wget用于知道具体的下载地址时使用
rpm主要用于查找,看是否已存在 rpm qa | grep 软件包名
yum 主要用于在缓存中查看下载链接中是否有相关文件,并下载安装
(1)wget (World Wide Web get):从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理
wget url(网址文件地址) wget http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O下载并以不同的文件名保存 如:wget -O wordpress.zip http://www.centos.bz/download.php?id=1080
(2) RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”
RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装.
可以使用rpm命令进行安装的文件必须以.rpm 后缀结尾的才行,但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
rpm -qa 将列出所有安装过的包。
rpm -qa |grep yum 如果要查找所有安装过的包含某个字符串“yum”的软件包,
rpm -qf 文件名 查询一个已经安装的文件属于哪个软件包;
rpm -ql 软件名 查询已安装软件包都安装到何处
rpm -qi 软件名 查看已安装文件的信息
rpm -vih file.rpm 这个是用来安装一个新的rpm 包; -i : 安装 -v : 可视化 -h : 显示安装进度
更详细请见 http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html
(3)Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpm
删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升级软件:yum upgrade foo或者yum update foo
查询信息:yum info foo
搜索软件(以包含foo字段为例):yum search foo
显示软件包依赖关系:yum deplist foo
以上是关于linux下tomcat部署java web项目的主要内容,如果未能解决你的问题,请参考以下文章
Linux(Centos)之安装tomcat并且部署Java Web项目