(十一)部署项目到linux环境的tomcat中运行

1.上传windows环境开发的应用程序。

如maven的web模块中自动打好了war包,只需将war包上传至linux系统中。

mv demo.war /home/hqh/tomcat6/webapps  将war包剪切到webapps目录

如果没有war包,则可将webapps目录下的文件使用zip格式打包上传,在linux系统中使用unzip命令解压。

文件上传到linux中,默认在宿主目录下,解压时直接将其解压到tomcat的webapps目录中。

cd /home/hqh/tomcat6

mkdir demo (创建好解压后文件存放的目录,此步取决于解压后的文件结构)

unzip /home/hqh/demo.zip  /home/hqh/tomcat6/webapps

包冲突问题的解决

tomcat目录下新建endorsed目录,加入jaxb.jar

 

2.建立link文件方便控制台信息的输出

ln -s /home/hqh/tomcat6/logs/catalina.out  /home/hqh/tomcat6/bin/console.out

tail -f console.out 通过对/logs/catalina.out建立链接,直接通过链接来查看控制台输出信息

 

3.启动tomcat

./startup.sh sh startup.sh

启动过程中出现了一个异常:

Caused by: java.lang.LinkageError: JAXB 2.1 API is being loaded from the bootstrap classloader,
but this RI (from jar:file:/home/hqh/tomcat6/webapps/student-web/WEB-INF/lib/jaxb-impl-2.2.5.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.2 API.
Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.6.0/docs/guide/standards/)

异常信息主要提示:类加载器已经加载了JAXB2.1,但是项目引入的jaxb-impl-2.2.5需要JAXB2.2的jar!

解决方案:在tomcat目录下新建endorsed目录,将项目中引入的JAXB2.2的api包放入其中,让tomcat去加载endorsed目录中JAXB2.2的包,这样就能解决了!

cd /home/hqh/tomcat6  进入tomcat目录 

mkdir endorsed             创建endorsed目录

mv tomcat6/webapps/demo/lib/jaxb-api-2.2.4.jar  tomcat6/endorsed

将需要加载的包放到endorsed目录中

./startup.sh  启动tomcat

tail -f console.out   查看控制台输出

 

 

 

此外,java也有endorse机制,可通过如下语句打印endorse目录

 System.out.println(System.getProperty("java.endorsed.dirs"));

4.linux环境部署webservice服务端

如果应用程序连的数据库是在window环境中的情况,则需要修改windows环境下

开发好的应用程序的数据库链接为linux下mysql的数据库用户账号

修改好之后再上传war包或者zip包

解压至tomcat/webapps目录中

启动tomcat

 

5.window环境启动客户端访问服务端

修改客户端的wsdl的地址,原来开发的程序使用的是windows环境的地址,现在需要改为linux的ip地址

 

6.tomcat 8080端口占用问题

 

7.netstat命令的使用

 ps -ef | grep java
 ps -ef | grep tomcat
 netstat -a -n -o

 

猜你喜欢

转载自schy-hqh.iteye.com/blog/1929045