一:将Maven开发的web项目,在resin服务器中打包发布(不借助eclipse)
1.将Maven开发的web项目打成war包
1)cmd,,进到命令控制台,进到要发布的web项目所在的目录
如:E:\workspace\sem_new_lv_2012.02.01\sem_new_web
2)执行命令:mvn package ,即可打成 war包。
打好的包会放到该项目下的target文件夹中。
2. 将打好war包放到resin服务器中的webapps文件夹下,并解压缩。
(注:若不手动解压缩,直接启动resin,虽然resin会将该war包解压,但运行时会报
404异常,原因现在还不太清楚)
3.配置resin.conf文件
1) <web-app id="/" root-directory="webapps/sem_new_web-0.0.1-SNAPSHOT" />
其中id为上下文路径,root-drirectory为应用路径
2)配置<database></database>标签,加入数据库信息
3)配置主机和端口号信息
如:<http address="*" port="8080">
4.启动resin
法一:点击resin.exe 可执行文件,即可启动
法二:命令方式启动
进到resin服务器中的bin文件夹,
其下有httpd.sh文件
输入命令 ./httpd.sh 前台启动
bin/httpd.sh start 后台启动
Bin/httpd.sh stop 后台关闭
注:sem系统测试版,在linux系统中,所用resin服务器为:
/home/ fsp/sem/service/resin-pro-3.1.13
二:linux系统常用命令(命令为小写形式)
cd: 进到指定目录 如:cd /home/fsp 绝对路径
cd sem 相对路径
cd .. 回到上一级
cd . 当前目录
cd / 进到根目录
ll: 显示当前目录下的内容,详细
ls: 显示当前目录下的内容,简
pwd: 显示当前路径
mkdir :创建目录 如:mkdir test
mv :改名 eg:mv test test2 表示:将test 改名为test2
rm -rf test2 删除文件夹, 其中r表删除,f表强制,不提示
rz: 从本地上传文件到linux系统
命令行下输入rz,回车,会弹出上传框,可选择上传文件
上传到当前目录
sz test2:从linux系统中下载文件test2到本地。
点击SecureCRT 菜单栏中的选项——>会话选项——X/Y/Zmodem,可看到文件上传和下载的路径
unzip xxx.zip 目录tt: 将zip文件解压到tt文件夹(unzip 也可以解压war文件)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ps aux|grep resin 查看运行着的resin进程
kill -9 11122 杀死某个进程
tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,方便看到最新
的文件内容
tail -10 filename 查看文件filename后10行
三:异常
1.
异常:windows系统正常运行的程序,但发布到linux系统后,有一个jsp页面却无法显示,提示文件找不到
原因:linux系统严格区分大小写,windows系统不区分。将该jsp页面的名字的大小写改为和程序中一致即可解决
2.
异常:将打好的war包放到resin中启动时,报有些类文件找不到异常,百度是缺少jar包,
但不直接在resin中发布,借助eclipse时,却没有该问题。
原因:在pom.xml文件里,standar这个jar包引入中,加了<scope>provided</scopse>
provided表示:只在编译时用,不随项目发布。
当去掉<scope>provided</scopse>后,即为默认的compile情况,随项目发布,问题解决。
((注:maven中scope标签用法:
在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided。如下:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
<classifier />
</dependency>
scope的其他参数如下:
· compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布
· provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。????????
· runtime
表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。
· test
表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。
· system
跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。))