我们有一个托管应用程序的 tomcat 实例。我们最近更改了域并希望将用户重定向到新域。
通过使用 Tuckey URL 重写过滤器,我可以将请求从一个域重定向到另一个域。但是,我遇到 SSL 名称错误,导致浏览器在执行 301 之前刹车。
每当请求特定域时,如何配置 tomcat 以颁发正确的 SSL 证书?
顺便说一句,理想情况下我想用 Apache 代理,但我想做一些额外的测试。
我们有一个托管应用程序的 tomcat 实例。我们最近更改了域并希望将用户重定向到新域。
通过使用 Tuckey URL 重写过滤器,我可以将请求从一个域重定向到另一个域。但是,我遇到 SSL 名称错误,导致浏览器在执行 301 之前刹车。
每当请求特定域时,如何配置 tomcat 以颁发正确的 SSL 证书?
顺便说一句,理想情况下我想用 Apache 代理,但我想做一些额外的测试。
免责声明:我知道我要问的甚至不接近最佳实践,但由于非常具体的要求,我认为这可能是极少数解决方案之一。
我们希望完全复制生产环境以进行压力、负载、功能和集成测试。我们已经在生产环境 VM (RHEL6)、Apache 2.4、Tomcat 6、Java 1.6 和 MySQL 5.1 的类似版本中完成了开发所需的部署;还为基础设施的每台服务器构建和复制数据库以进行开发。现在我们希望能够复制 Apache 全天接收的请求流。为了保持请求类型的复杂分布,我们认为可以在生产环境中记录 Apache 在特定时间范围内收到的请求,并在我们的测试环境中重放它。如果可能的话,扩展该分布(例如 100 倍)或循环它。
有什么方法可以做到这一点,最好是在 Apache 级别甚至应用程序上,知道每个环境只能与 SSH 通信(这可能不是永久性的)并且防火墙阻止它们通信,因为它们属于不同的组织(官僚是****)。但如果绝对必要,可以对最后两个进行例外处理。此外,该过程是否具有最新的复制或具有超快的过程并不重要。
那么,满足这些要求的最佳解决方案是什么?
我被要求将在 Debian Wheezy 上运行 Apache 和 Tomcat-6 的服务器从 HTTP 升级到 HTTPS。我已成功获得并在 Apache 部分安装 SSL 证书并检查它们是否工作(使用两个不同的 SSL 检查器)。
接下来,我将以下块添加到/etc/apache2/sites-available/default-ssl
:
<VirtualHost *:80>
ServerName server.name
Redirect permanent / https://server.name/
</VirtualHost>
这到<VirtualHost _default_:443>
同一文件中块的末尾:
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
在 Tomcat 端,该/etc/tomcat6/server.xml
文件包括两个活动连接器:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<Connector address="127.0.0.1" port="8009" protocol="AJP/1.3" redirectPort="8443" />
现在,当我转到 时https://server.name/app/main/login.jspx
,我得到了一个 SSL 连接,但它在登录后消失了。
如果我去https://server.name/app
,我会立即被重定向到http://server.name/app/main/login.jspx
(无 SSL)。
(如果我去 just https://server.name/
,我最终会出现在 中定义的重定向页面/var/lib/tomcat6/webapps/ROOT/index.html
。)
我究竟做错了什么?我需要改用 AJP 代理吗?
我安装了带有 Geoserver 7 的 tomcat6。
尝试重新启动后出现错误catalina.out
java.lang.NoClassDefFoundError: Could not initialize class java.util.Currency
at java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:559)
at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:94)
at java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:157)
at java.text.NumberFormat.getInstance(NumberFormat.java:767)
at java.text.NumberFormat.getIntegerInstance(NumberFormat.java:439)
at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:581)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:570)
at java.text.DateFormat.get(DateFormat.java:724)
at java.text.DateFormat.getDateInstance(DateFormat.java:499)
at java.text.MessageFormat.makeFormat(MessageFormat.java:1407)
at java.text.MessageFormat.applyPattern(MessageFormat.java:475)
at java.text.MessageFormat.<init>(MessageFormat.java:367)
at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:70)
at org.apache.juli.FileHandler.publish(FileHandler.java:198)
at java.util.logging.Logger.log(Logger.java:573)
at java.util.logging.Logger.doLog(Logger.java:598)
at java.util.logging.Logger.logp(Logger.java:798)
at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:167)
at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:135)
at org.apache.catalina.startup.Bootstrap.initClassLoaders(Bootstrap.java:100)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:207)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)
我能用它做什么?
系统详细信息:
操作系统:Cent OS 5.5 x86_64
java - 1.7 (1.7.0_25)
tomcat:6.0.37
solr 4.4(配置为多核)
我在码头上完美运行了 solr 4.4 多核(尽管目前只运行一个核心)。
我需要在 tomcat 6 上运行相同的程序,看看它是否可以比码头更好。
这是我所做的: 1.从http://mirrors.sonic.net/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz
下载了 tomcat 6
2. 将apache-tomcat-6.0.37.tar.gz解压到/usr/local/tomcat/
创建启动和关闭脚本,进程通过user:group tomcat:tomcat查看启动脚本,发现tomcat运行正常. 我将端口从 8080 修改为 8400
3.在tomcat下为solr app创建了一个solr.xml: 文件:/usr/local/tomcat/conf/Catalina/localhost/solr.xml
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/var/www/projects/solr-oncars/example/solr/solr-4.4.0.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/var/www/projects/solr-oncars/example/solr" override="true" />
</Context>
4. 复制 solr.war 到 core 的 home-path
cp /var/www/projects/solr-oncars/example/webapps/solr.war /var/www/projects/solr-oncars/example/solr/oncars/
甚至尝试使用 solr-4.4.war
cp /var/www/projects/solr-oncars/dist/solr-4.4.0.war /var/www/projects/solr-oncars/example/solr/
5. 编辑 solrconfig.xml
5.a:我尝试
从以下位置编辑 solrconfig.xml 中的数据目录:
<dataDir>${solr.core0.data.dir:}</dataDir>
至:
<dataDir>${solr.core0.data.dir:/var/www/projects/solr-oncars/example/solr/oncars/data}</dataDir>
5.b上面的设置还原后我也试过了
6. 将 slf4j jar 复制到 tomcat: 当我尝试从 tomcat 管理器启动 solr 应用程序时,在 catalina 日志中遇到很多 sl4j 错误。这是通过将 sl4j 库从 solr 复制到 tomcat 来解决的。如下所示:
cp -v /var/www/projects/solr-oncars/example/lib/ext/slf4j-* /usr/local/tomcat/lib/
cp -v /var/www/projects/solr-oncars/example/lib/ext/log4j-1.2.16.jar /usr/local/tomcat/lib/
从 1 到 6 完成了从 tomcat 执行现有的 solr。在 Tomcat 管理器下,“/solr”显示为已启动。Stop 和 Start 一样不会抛出错误。
我可以看到 solr 文件夹是在 tomcat 的 webapps 下创建的:
ll webapps/solr/
输出:
-rw-r--r-- 1 tomcat tomcat 5642 Jul 10 11:11 admin.html drwxr-xr-x 3 tomcat tomcat 4096 Sep 19 18:53 css -rw-r--r-- 1 tomcat tomcat 1146 Jul 10 11:11 favicon.ico drwxr-xr-x 4 tomcat tomcat 4096 Sep 19 18:53 img drwxr-xr-x 4 tomcat tomcat 4096 Sep 19 18:53 js drwxr-xr-x 2 tomcat tomcat 4096 Sep 19 18:53 META-INF drwxr-xr-x 2 tomcat tomcat 4096 Sep 19 18:53 tpl drwxr-xr-x 3 tomcat tomcat 4096 Sep 19 18:53 WEB-INF
当从 tomcat 管理器中单击 /solr 时,即 URL:http ://localdomain.com:8400/solr/ 出现以下页面:
HTTP 状态 503 - 服务器正在关闭 类型状态报告 消息服务器正在关闭 描述 请求的服务当前不可用。 Apache Tomcat/6.0.37
SOLR 配置: /var/www/projects/solr-oncars/example/solr/solr.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<cores adminPath="/admin/cores">
<core schema="schema.xml" name="oncars" instanceDir="oncars" conf="solrconfig.xml"/>
</cores>
</solr>
我曾尝试在网上寻找帮助,但找不到任何有效的方法。甚至来自 serverfault 的资源
有人可以帮助我在我的 RHEL 6.3 机器(由 Amazon Web Services 托管的 EC2 实例)上运行 djatoka 图像查看器吗?
Tomcat 6 安装得很好(使用sudo yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps
),因为我可以看到“恭喜您安装了 Tomcat”页面。
我认为我已经在很大程度上安装了 djatoka(通过下载 tar、解压缩并将 .war 文件转储到 tomcat 的 wepabbs 目录中),因为当我将 tomcat 的 webapp 目录中的文件名附加到 url 时,我可以看到它的测试页面。但是,测试页本身不起作用,并且不输出任何错误。
官方安装说明仅涉及 tomcat5 并使用一个名为的脚本,该脚本catalina.sh
在 tomcat6 上似乎不存在。上的社区邮件列表自 2010 年以来没有收到知情用户的任何回复。
在没有社区支持的情况下,这里有没有人知道有关 djatoka 的任何信息,或者我如何着手解决配置的问题?
我无能为力,所以我可能错过了一些细节,如果有任何我应该包括的额外信息,请发表评论。
我正在使用 tomcat6 和 HUDSON,当我运行它作为 tomcat6 用户运行的 hudson 作业时,我想知道有什么方法可以将 HUDSON 用户更改为我的系统登录用户而不是 tomcat6,以便我可以运行 hudson 作业作为我的系统用户。
我只想知道这是否可能,为什么以及如何?
我厌倦了编辑 /etc/init.d/tomcat6 并将 tomcat6 用户和 grop 更改为我的登录 ID,然后重新启动了 tomcat。哈德逊作业仍然以 tomcat6 用户身份运行。我做对了吗,如果是这样,为什么它不起作用。
提前致谢
今天上班发现tomcat6无法启动。尝试使用以下命令停止和启动时:
service tomcat6 stop ; > /var/log/tomcat6/catalina.out && service tomcat6 start && less +F /var/log/tomcat6/catalina.out
它报告OK
启动 tomcat,但使用ps
,没有显示 tomcat 进程。catalina.out 文件也没有显示任何内容,完全空白。在查看 /var/log/tomcat6/tomcat6-initd.log 时,我看到两行在每次尝试时一遍又一遍地重复:
/usr/sbin/tomcat6: line 60: ${2}: ambiguous redirect
/usr/sbin/tomcat6: line 30: ${2}: ambiguous redirect
查看 /usr/sbin/tomcat6,两行内容如下:
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
-classpath "$CLASSPATH" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
org.apache.catalina.startup.Bootstrap start \
>> ${2} 2>&1 &
60 和 30 的第一行相同。我的$JAVA_OPTS
阅读:
JAVA_OPTS="-server -Xss128K -Xms3G -Xmx3G -XX:MaxPermSize=256M -Dambiguous.url=https://ambiguous.url.com"
据我所知(老实说,不确定在哪里看)$CATALINA_OPTS
是空的,但我可能会弄错。可以肯定的是,我没有调整它的值,并且确信该值与歧义重定向问题无关。
更新:通过将我们的 tomcat6 包更新到最新版本,我现在没有收到上面看到的错误。事实上,/usr/sbin/tomcat6 文件在它之前指向我的区域周围读取完全不同:
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
-classpath "$CLASSPATH" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
org.apache.catalina.startup.Bootstrap start \
>> ${CATALINA_BASE}/logs/catalina.out 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID
fi
现在它变得更加复杂,因为 tomcat6-initd.log 根本没有报告任何内容,但服务仍然没有启动。运行带有 a 的 init 脚本-x
会在启动时产生以下输出:
# service tomcat6 start
+ '[' -r /lib/lsb/init-functions ']'
+ . /lib/lsb/init-functions
++ lsb_release -i -s
+ DISTRIB_ID=Scientific
++ basename /etc/init.d/tomcat6
+ NAME=tomcat6
+ unset ISBOOT
+ '[' t = S -o t = K ']'
+ '[' -x /sbin/runuser ']'
+ SU='/sbin/runuser -s /bin/sh'
+ TOMCAT_CFG=/etc/tomcat6/tomcat6.conf
+ '[' -r /etc/tomcat6/tomcat6.conf ']'
+ . /etc/tomcat6/tomcat6.conf
++ CATALINA_BASE=/usr/share/tomcat6
++ CATALINA_HOME=/usr/share/tomcat6
++ JASPER_HOME=/usr/share/tomcat6
++ CATALINA_TMPDIR=/var/cache/tomcat6/temp
++ JAVA_OPTS='-Xms3072m -Xmx3072m -Xss512m -XX:MaxPermSize=512m -server -Dambiguous.url=https://ambiguous.url.com'
++ TOMCAT_USER=root
++ SECURITY_MANAGER=false
++ SHUTDOWN_WAIT=30
++ SHUTDOWN_VERBOSE=false
++ CATALINA_PID=/var/run/tomcat6.pid
+ '[' -r /etc/sysconfig/tomcat6 ']'
+ . /etc/sysconfig/tomcat6
+ CONNECTOR_PORT=8080
+ TOMCAT_SCRIPT=/usr/sbin/tomcat6
+ TOMCAT_PROG=tomcat6
+ TOMCAT_USER=root
+ TOMCAT_LOG=/var/log/tomcat6/tomcat6-initd.log
+ RETVAL=0
+ RETVAL=0
+ case "$1" in
+ start
+ echo -n 'Starting tomcat6: '
Starting tomcat6: + '[' 0 '!=' 0 ']'
+ '[' -f /var/lock/subsys/tomcat6 ']'
+ '[' -f /var/run/tomcat6.pid ']'
+ read kpid
+ '[' -d /proc/ ']'
+ log_success_msg
+ /etc/redhat-lsb/lsb_log_message success
[ OK ]
+ '[' Scientific = MandrivaLinux ']'
+ RETVAL=0
+ return
+ exit 0
如果我要在运行 tomcat 的单独服务器上运行完全相同的设置(有多个虚拟机作为集群运行),输出为:
# service tomcat6 start
+ '[' -r /lib/lsb/init-functions ']'
+ . /lib/lsb/init-functions
++ lsb_release -i -s
+ DISTRIB_ID=Scientific
++ basename /etc/init.d/tomcat6
+ NAME=tomcat6
+ unset ISBOOT
+ '[' t = S -o t = K ']'
+ '[' -x /sbin/runuser ']'
+ SU='/sbin/runuser -s /bin/sh'
+ TOMCAT_CFG=/etc/tomcat6/tomcat6.conf
+ '[' -r /etc/tomcat6/tomcat6.conf ']'
+ . /etc/tomcat6/tomcat6.conf
++ CATALINA_BASE=/usr/share/tomcat6
++ CATALINA_HOME=/usr/share/tomcat6
++ JASPER_HOME=/usr/share/tomcat6
++ CATALINA_TMPDIR=/var/cache/tomcat6/temp
++ JAVA_OPTS='-Xms3072m -Xmx3072m -Xss512m -XX:MaxPermSize=512m -server -Dambiguous.url=https://ambiguous.url.com'
++ TOMCAT_USER=root
++ SECURITY_MANAGER=false
++ SHUTDOWN_WAIT=30
++ SHUTDOWN_VERBOSE=false
++ CATALINA_PID=/var/run/tomcat6.pid
+ '[' -r /etc/sysconfig/tomcat6 ']'
+ . /etc/sysconfig/tomcat6
+ CONNECTOR_PORT=8080
+ TOMCAT_SCRIPT=/usr/sbin/tomcat6
+ TOMCAT_PROG=tomcat6
+ TOMCAT_USER=root
+ TOMCAT_LOG=/var/log/tomcat6/tomcat6-initd.log
+ RETVAL=0
+ RETVAL=0
+ case "$1" in
+ start
+ echo -n 'Starting tomcat6: '
Starting tomcat6:
+ '[' 0 '!=' 0 ']'
+ '[' -f /var/lock/subsys/tomcat6 ']'
+ export CATALINA_PID=/var/run/tomcat6.pid
+ CATALINA_PID=/var/run/tomcat6.pid
+ touch /var/run/tomcat6.pid
+ '[' 0 -eq 0 -a 0 -eq 0 ']'
+ chown root:root /var/run/tomcat6.pid
+ '[' 0 -eq 0 ']'
+ touch /var/log/tomcat6/tomcat6-initd.log
+ '[' 0 -eq 0 -a 0 -eq 0 ']'
+ chown root:root /var/log/tomcat6/tomcat6-initd.log
+ parseOptions
+ options=
++ awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }' /etc/tomcat6/tomcat6.conf
+ options=' export CATALINA_BASE="/usr/share/tomcat6" ; export CATALINA_HOME="/usr/share/tomcat6" ; export JASPER_HOME="/usr/share/tomcat6" ; export CATALINA_TMPDIR="/var/cache/tomcat6/temp" ; export JAVA_OPTS="-Xms3072m -Xmx3072m -Xss512m -XX:MaxPermSize=512m -server -Dambiguous.url=https://ambiguous.url.com" ; export TOMCAT_USER="root" ; export SECURITY_MANAGER="false" ; export SHUTDOWN_WAIT="30" ; export SHUTDOWN_VERBOSE="false" ; export CATALINA_PID="/var/run/tomcat6.pid" ; '
+ '[' -r /etc/sysconfig/tomcat6 ']'
++ awk '!/^#/ && !/^$/ { ORS=" ";
print "export ", $0, ";" }' /etc/sysconfig/tomcat6
+ options=' export CATALINA_BASE="/usr/share/tomcat6" ; export CATALINA_HOME="/usr/share/tomcat6" ; export JASPER_HOME="/usr/share/tomcat6" ; export CATALINA_TMPDIR="/var/cache/tomcat6/temp" ; export JAVA_OPTS="-Xms3072m -Xmx3072m -Xss512m -XX:MaxPermSize=512m -server -Dambiguous.url=https://ambiguous.url.com" ; export TOMCAT_USER="root" ; export SECURITY_MANAGER="false" ; export SHUTDOWN_WAIT="30" ; export SHUTDOWN_VERBOSE="false" ; export CATALINA_PID="/var/run/tomcat6.pid" ; '
+ TOMCAT_SCRIPT=' export CATALINA_BASE="/usr/share/tomcat6" ; export CATALINA_HOME="/usr/share/tomcat6" ; export JASPER_HOME="/usr/share/tomcat6" ; export CATALINA_TMPDIR="/var/cache/tomcat6/temp" ; export JAVA_OPTS="-Xms3072m -Xmx3072m -Xss512m -XX:MaxPermSize=512m -server -Dambiguous.url=https://ambiguous.url.com" ; export TOMCAT_USER="root" ; export SECURITY_MANAGER="false" ; export SHUTDOWN_WAIT="30" ; export SHUTDOWN_VERBOSE="false" ; export CATALINA_PID="/var/run/tomcat6.pid" ; /usr/sbin/tomcat6'
+ '[' 0 -eq 0 -a false = true ']'
+ '[' 0 -eq 0 ']'
+ /sbin/runuser -s /bin/sh - root -c ' export CATALINA_BASE="/usr/share/tomcat6" ; export CATALINA_HOME="/usr/share/tomcat6" ; export JASPER_HOME="/usr/share/tomcat6" ; export CATALINA_TMPDIR="/var/cache/tomcat6/temp" ; export JAVA_OPTS="-Xms3072m -Xmx3072m -Xss512m -XX:MaxPermSize=512m -server -Dambiguous.url=https://ambiguous.url.com" ; export TOMCAT_USER="root" ; export SECURITY_MANAGER="false" ; export SHUTDOWN_WAIT="30" ; export SHUTDOWN_VERBOSE="false" ; export CATALINA_PID="/var/run/tomcat6.pid" ; /usr/sbin/tomcat6 start'
+ '[' 0 -eq 0 ']'
+ log_success_msg
+ /etc/redhat-lsb/lsb_log_message success
[ OK ]
+ touch /var/lock/subsys/tomcat6
+ '[' Scientific = MandrivaLinux ']'
+ exit 0
为了彻底起见,start()
函数中的/etc/init.d/tomcat6
内容如下:
function start() {
echo -n "Starting ${TOMCAT_PROG}: "
if [ "$RETVAL" != "0" ]; then
log_failure_msg
return
fi
if [ -f "/var/lock/subsys/${NAME}" ]; then
if [ -f "/var/run/${NAME}.pid" ]; then
read kpid < /var/run/${NAME}.pid
# if checkpid $kpid 2>&1; then
if [ -d "/proc/${kpid}" ]; then
log_success_msg
if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then
echo
fi
RETVAL="0"
return
fi
fi
fi
# fix permissions on the log and pid files
export CATALINA_PID="/var/run/${NAME}.pid"
touch $CATALINA_PID 2>&1 || RETVAL="4"
if [ "$RETVAL" -eq "0" -a "$?" -eq "0" ]; then
chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
fi
[ "$RETVAL" -eq "0" ] && touch $TOMCAT_LOG 2>&1 || RETVAL="4"
if [ "$RETVAL" -eq "0" -a "$?" -eq "0" ]; then
chown ${TOMCAT_USER}:${TOMCAT_USER} $TOMCAT_LOG
fi
parseOptions
if [ "$RETVAL" -eq "0" -a "$SECURITY_MANAGER" = "true" ]; then
$SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start-security" \
>> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
else
[ "$RETVAL" -eq "0" ] && $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
fi
if [ "$RETVAL" -eq "0" ]; then
log_success_msg
touch /var/lock/subsys/${NAME}
else
log_failure_msg "Error code ${RETVAL}"
fi
if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then
echo
fi
}
我有一个 Windows 2003 和一个运行多个应用程序的苗条 tomcat 6 安装。现在我想“安装”管理器应用程序来刷新某些应用程序......
我将另一个安装的管理器文件夹复制到 webapps 文件夹并重新启动了 tomcat。我检查了conf/Catalina/...的所有文件夹中都有manager.xml文件(自动生成??)
我仍然得到 404
root@konrad:/var/lib/tomcat6/logs# cat localhost.2012-07-12.log
Jul 12, 2012 9:26:30 AM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter SetCharacterEncoding
java.lang.ClassNotFoundException: org.apache.catalina.filters.SetCharacterEncodingFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)