标签: tomcat

首次安装后,tomcat 8 无法启动

我正在尝试在新的 CentOS 7 虚拟机上安装 tomcat。我成功安装了apache httpd,当我在网络中的另一台计算机上的Web浏览器中输入虚拟机的ip时,能够获得apache测试页面。但是当我输入时收到以下错误消息systemctl start tomcat

Job for tomcat.service failed. See 'systemctl status tomcat.service' and 'journalctl -xn' for details.  
Run Code Online (Sandbox Code Playgroud)

以下是安装 java 和 tomcat 的完整命令历史:

我首先使用本教程中的说明安装 java 因为 tomcat 说明(下面的第二个块)希望我使用 openjdk,而我需要使用真正的 java:

//Install Java
# cd /opt/
# yum install wget
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz"

# tar xzf jdk-8u60-linux-x64.tar.gz

# cd /opt/jdk1.8.0_60/
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_60/bin/java 2
# alternatives --config java
(Select the version you want)
# …
Run Code Online (Sandbox Code Playgroud)

centos webserver tomcat

19
推荐指数
1
解决办法
8万
查看次数

如何避免在 systemd 日志中将 /usr/bin/env 标记为可执行文件

我已经根据本文中的信息创建了一个 systemd 服务来运行 tomcat 应用程序。这篇文章的简短版本建议避免使用 shell 脚本包装器,并使用适当的环境和命令行直接执行 java。

这是整个 systemd 服务(替换了应用程序名称):

[Unit]
Description=MyApp Tomcat Container

[Service]
EnvironmentFile=/opt/myapp/environment
ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java $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

ExecStop=/usr/bin/env $JAVA_HOME/bin/java $JAVA_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 stop

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

据我所知,这很有效。服务正确启动、停止和报告状态。我遇到的问题是由journalctl以下人员报告的日志:

# journalctl -u myapp.service --since today

Sep 14 00:26:00 myserver.domain.com env[654]: MyApp:2015-09-14 00:26:00: …
Run Code Online (Sandbox Code Playgroud)

systemd tomcat systemd-journald

15
推荐指数
1
解决办法
3947
查看次数

为什么 apache 会导致 DNS 查找失败?

CentOS 7 Web 服务器有 tomcat 在 apache httpd 反向代理后面提供 war 文件。当 WAR 文件都是服务器端代码时,这非常有效。但是,当客户端代码(在本例中为 AngularJS)与服务器端代码一起包含在 war 文件中时,apache httpd 2.4domain3.com在 Web 浏览器中键入时,会针对应用程序中核心 html 文件的每个依赖项抛出以下代理错误:

[proxy:error] AH00898: DNS lookup failure for: resources returned by /res$
Run Code Online (Sandbox Code Playgroud)

为了确认这是 apache 错误而不是 tomcat 错误,我在 firewalld 中为该应用程序打开了 8084 端口,然后加载domain3.com:8084以找到该应用程序运行完美,包括其客户端 AngularJS 代码。

当请求domain3.com被输入到 Web 浏览器时,为了使 apache httpd 2.4 能够为战争中包含的客户端应用程序提供包含,需要进行哪些配置更改?

此类domain3.com事务的完整 httpd 日志是:

[Tue Nov 03 14:31:57.662516 2015] [proxy:error] [pid 9332] [client client.ip.addr:57369] AH00898: DNS lookup failure for: server.ip.addr:8013resources returned by /res$ …
Run Code Online (Sandbox Code Playgroud)

centos tomcat apache-httpd

12
推荐指数
1
解决办法
5万
查看次数

Tomcat 7 不会在 RHEL7 上向 catalina.out 生成日志输出

我有一个安装了 Apache Tomcat 7.0 的 RHEL7 服务器,在最近更新到 RHEL7.1 之后,所有到 ${catalina.base}/logs/catalina.out 的日志记录都停止了。但是我在 journalctl 中收到日志。

如果我输入 journalctl -u tomcat 我会得到日志。有什么方法可以让我也将日志记录到 catalina.out 吗?

cat /usr/share/tomcat/logs/catalina.out
no output

journalctl -u tomcat

Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
Aug 20 10:07:14 server.example.com server[26435]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
...
Run Code Online (Sandbox Code Playgroud)

rhel rsyslog tomcat systemd-journald

10
推荐指数
2
解决办法
4万
查看次数

KrbException: 无法创建凭据。(63) - 没有服务信用

我正在使用 Oracle Java 1.8.0_91-b14(不是openjdk)在 Ubuntu 16.04 上设置 Tomcat 8.0.35,以便在对我们的 Microsoft SQL 数据库进行身份验证时使用 Kerberos 身份验证。我遇到的问题是,在kinit使用适当的开关以适当的用户身份运行后:

sudo -u tomcat8 kinit -k -t /etc/tomcat8/tomcat8.keytab HTTP/linux-test2.our.domain.local@OUR.DOMAIN.LOCAL
Run Code Online (Sandbox Code Playgroud)

我在 Tomcat 的 localhost 日志中收到此错误:

Caused by: GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63) - No service creds)
Caused by: KrbException: Fail to create credential. (63) - No service creds
Run Code Online (Sandbox Code Playgroud)

当我跑

sudo -u tomcat8 klist
Run Code Online (Sandbox Code Playgroud)

我得到了预期的回应:

root@linux-test2:/home/tbourne# sudo -u tomcat8 klist
Ticket cache: FILE:/tmp/krb5cc_111
Default principal: HTTP/linux-test2.our.domain.local@OUR.DOMAIN.LOCAL

Valid starting …
Run Code Online (Sandbox Code Playgroud)

linux kerberos sql tomcat

6
推荐指数
1
解决办法
3589
查看次数

如何在 Apache tomcat 8 中向管理员用户添加多个角色?

最近我安装了一个 apache tomcat 8。我的 tomcat-users.xml 包含这个:

<tomcat-users>
    <role rolename="admin-gui"/>
    <user username="tomcat" password="pass1234" roles="admin-gui"/>
</tomcat-users>
Run Code Online (Sandbox Code Playgroud)

我也想为此用户启用打开管理器应用程序和服务器状态。谁可以帮我这个事 ?

tomcat

6
推荐指数
1
解决办法
1万
查看次数

如何使用 iptables 将端口 80 和 443 重定向到 8080 和 8443?

我正在查看名为 DSpace 的 Tomcat 6 web 应用程序的文档,特别是关于在标准端口上运行运行 DSpace(http:// 为 80,https:// 为 443)

我正在尝试使用“方法 1”,它使用 iptables 将流量从端口 80 和 443 重定向到 8080 和 8443,以便摆脱:8080url 中的 。

这些是文档给出的命令:

/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
/sbin/iptables -t nat -A OUTPUT -p tcp -d _[server_ip_address|server_ip_address]_ --dport 80 -j  REDIRECT --to-port 8080
/sbin/iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443
Run Code Online (Sandbox Code Playgroud)

我认为第二行需要更改一些内容,特别是该部分-d _[server_ip_address|server_ip_address]_- 但我不确定是什么。我已经阅读了该man页面,iptables …

linux iptables tomcat

5
推荐指数
1
解决办法
4万
查看次数

Tomcat 不会使用 setenv.sh

我已将 Tomcat 安装为服务。

CATALINA_HOMECATALINA_BASE是一样的:

-Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7
Run Code Online (Sandbox Code Playgroud)

我在下一行添加了setenv.sh脚本/usr/share/tomcat7/bin

$ cat /usr/share/tomcat7/bin/setenv.sh
#!/usr/bin/env bash

export JAVA_OPTS="-Dcom.sun.management.jmxremote=true \
                  -Dcom.sun.management.jmxremote.port=9090 \
                  -Dcom.sun.management.jmxremote.ssl=false \
                  -Dcom.sun.management.jmxremote.authenticate=false \
                  -Djava.rmi.server.hostname=54.***.***.65"
Run Code Online (Sandbox Code Playgroud)

但是 Tomcat 的行为仍然没有变化 - 没有打开新端口,没有新选项是ps aux | grep java

# netstat -anp | grep 9090 | wc -l
0

# ps aux | grep java
tomcat   32063 96.6 23.5 1904000 399872 ?      Sl   09:04   3:07 /usr/lib/jvm/jre/bin/java -Xms512M -Xmx1024M -javaagent:/usr/share/tomcat7/newrelic/newrelic.jar -classpath :/usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat7/temp -Djava.util.logging.config.file=/usr/share/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap …
Run Code Online (Sandbox Code Playgroud)

java tomcat

5
推荐指数
1
解决办法
3万
查看次数

Tomcat - setenv.sh 如何工作?

我认为之前没有人问过我的问题(无论如何都没有问过,如果有,抱歉)。我在 CentOS 7 上使用 Tomcat 7。

在我的 tomcat/bin/setenv.sh 文件中,我设置了:

export TEST="test"
Run Code Online (Sandbox Code Playgroud)

然后我通过运行 tomcat/bin/startup.sh 通过终端启动 tomcat

然后我运行(不是在脚本中,而是在执行 Tomcat 启动脚本后在终端中运行):

echo $TEST
Run Code Online (Sandbox Code Playgroud)

我的问题:我应该能够“回显”变量 TEST 吗?我是否应该能够看到 TEST 变量已设置为我想要的(测试)?

centos environment-variables tomcat

5
推荐指数
2
解决办法
2万
查看次数

CentOS 7 httpd 无法与后端建立连接

在设置为for的CentOS 7服务器中,我收到一条错误消息,表明无法与. 如何解决此错误,以便 httpd 提供由 tomcat 生成的内容?apache httpd 2.4ssl reverse proxytomcathttpdtomcat

ssl_error_log说:

[Tue Dec 16 20:20:15.007630 2014] [proxy:error] [pid 12784] (111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (localhost) failed
[Tue Dec 16 20:20:15.007727 2014] [proxy:error] [pid 12784] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s
[Tue Dec 16 20:20:15.007752 2014] [proxy_http:error] [pid 12784] [client client.ip.address:48100] AH01114: HTTP: failed to make connection to backend: localhost
Run Code Online (Sandbox Code Playgroud)

我已经阅读了该catalina.out文件,它清楚地表明tomcat在我运行 …

centos ssl tomcat apache-httpd reverse-proxy

4
推荐指数
1
解决办法
3万
查看次数