Tomcat中,要配置webapp时,通常会去编辑server.xml。比如配置Environment环境变量,Parameter参数,以及Resource和webapp的path等等。频繁的去动全局的server.xml会多不少麻烦,比如当你要频繁的配置在不同的机器上时。
我们可以把这些配置放在/META-INF/context.xml中,跟着我们的webapp走。这样改变的一个副作用就是,你的配置仅仅会被你当前的webapp来加载。而server.xml中的配置是全局起作用的(Glassfish中的话,在/domains/domain1/config/context.xml)。可以看下面一个例子,(摘自Seam的example)<Context path="/jboss-seam-hibernate" docBase="jboss-seam-hibernate"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="sa"
driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:." />
</Context>
再来一个示例。<Context>
<Environment name="webapp-env" type="java.lang.String" value="webapp-env-value"/>
<Resource name="jdbc/__default" auth="Container"
type="javax.sql.DataSource"
description="Default Database"/>
</Context>
Glassfish从V2 Beta 2 以后的版本都应该支持这个特性。
... Read more!
Written on 2009/02/10 by MAN2
Tomcat中Context的设置
Labels:
Glassfish,
Tomcat
0 Comments
Written on 2009/02/06 by MAN2
Tomcat和Glassfish,在处理JSF画面上未输入内容的Textfield的区别
Labels:
Apache,
Glassfish,
Tomcat
0 Comments
Tomcat和Glassfish,在处理JSF画面上未输入内容的Textfield的区别
Tomcat版本:6.0.18
Glassfish版本:V2
一直在Tomcat下面开发的程序,考虑实际运行时使用Glassfish,于是拿到Glassfish上进行测试,按照J2EE的理论,一个编译好的war包应该可以在任何符合J2EE标准的Web服务器上运行。当顺利的部署好后,运行第一个检索画面的时候就出现问题,发现报错了。跟踪下来发现,在mb中有一个对画面输入值是否为空的判断
if(!customerid.equals(""))
在这句话上出现了问题,因为这个字段没有被输入,所以实际取得的customerid为null,但是这个画面在tomcat下面没有出现任何问题,使用的JSF包也是sun的实现。最后推测可能是Glassfish和Tomcat在对于jsp页面处理时背后的机制有所不同吧。还是老老实实的用StringUtils.isNotBlank()来进行判断吧。
... Read more!
Written on 2008/04/09 by Big Br0ther
Apache2.2で変わったTomcatとの連携方法→mod_proxy_ajp
Labels:
Apache,
Tomcat
0 Comments
元々は、mod_jkを使用してTomcatと連携していましたが、Apache2.2以降は、mod_proxy_ajpを使用します。ここでは、mod_proxy_ajpの連携手順を記述します。
今回、下記の環境を使用します
・OS:Ubuntu 6.3
・Tomcat 6.0.3
・Apache 2.2.4
・JDK 1.6.0_03
1,mod_proxy_ajpのインストール
$sudo a2enmod proxy_ajp
2,proxy.confの修正
Deny from all → Allow from all
3,Tomcatのコンテキストパスは下記のように記述する
<location /examples>
ProxyPass ajp://localhost:8009/examples/
</location>
以上
... Read more!
Written on 2006/10/13 by Big Br0ther
Linux下使用jsvc将Tomcat作为服务进程运行
Labels:
Linux,
Tomcat
0 Comments
Running Tomcat 5.5 as Linux Daemon
在下载的Tomcat包中就直接带了jsvc的源代码,可以很简单的自己构建一下。假设Tomcat被解压在$CATALINA_HOME目录下,按照下面的命令进行构建jsvc
cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..
在$CATALINA_HOME/bin目录下就可以看到一个jsvc可运行文件。接下来配置service脚本。
以root身份创建/etc/init.d/TomCatJsvc脚本,写入如下内容:
JAVA_HOME='/home/tomcat/jdk1.5.0_06'
CATALINA_HOME='/home/tomcat/apache-tomcat-5.5.16'
CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_USER=tomcat
TMPDIR=/var/tmp
RC=0
case "$1" in
start)
$CATALINA_HOME/bin/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Djava.io.tmpdir=$TMPDIR \
-Djava.awt.headless=true \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile $CATALINA_HOME/logs/catalina.err \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
RC=$?
[ $RC = 0 ] && touch /var/lock/subsys/tomcat
;;
stop)
PID=`cat /var/run/jsvc.pid`
kill $PID
RC=$?
[ $RC = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/jsvc.pid
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit $RC
使用root身份运行此服务
# /etc/init.d/TomCatJsvc start
可以使用
ps -ef|grep tomcat
确认此服务是否运行,另外可以通过浏览器访问,察看此服务是否已经运行。
... Read more!