日期:2014-05-16  浏览次数:20767 次

部署项目到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??