NetBeans 17中以tomcat用户运行Tomcat 9的启动故障排查
在NetBeans 17中以tomcat用户运行Tomcat 9启动Java EE项目的问题
问题概述
希望在NetBeans 17中启动Java EE项目时,让Tomcat 9以tomcat用户运行(当前默认使用登录用户robtot),但出现日志文件权限错误,且Tomcat启动失败。
日志权限错误信息
... Starting service [Catalina] Starting Servlet engine: [Apache Tomcat/9.0.58 (Ubuntu)] Failed to open access log file [/usr/share/tomcat9/logs/localhost_access_log.2023-03-20.txt] Note: running as user [robtot] java.io.FileNotFoundException: /usr/share/tomcat9/logs/localhost_access_log.2023-03-20.txt (Permission denied) ...
备注:已将用户robtot加入tomcat组。
Tomcat启动失败信息
「TestProject (debug)」日志输出:
Starting Tomcat process... Waiting for Tomcat Starting of Tomcat failed. /home/TestProject/server/nbproject/build-impl.xml:1196: Starting of Tomcat failed.
对应build-impl.xml第1196行(调试部分):
<target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" description="Debug project in IDE." if="netbeans.home" name="debug"> <nbstartserver debugmode="true"/> <!-- THIS IS LINE 1196 --> <antcall target="connect-debugger"/> <nbdeploy clientUrlPart="${client.urlPart} debugmode="true" forceRedeploy="true"/> <antcall target="debug-display-browser-old" /> <antcall target="debug-display-browser"/> <antcall target="connect-client-debugger"/> </target>
目录权限与所有者信息
/usr/share/tomcat9
drwxr-xr-x root tomcat bin/ lrwxrwxrwx root tomcat conf/ -rw-r--r-- root tomcat default.template drwxr-xr-x root tomcat etc/ drwxr-xr-x root tomcat lib/ -rw-r--r-- root tomcat logrotate.template lrwxrwxrwx tomcat tomcat logs lrwxrwxrwx tomcat tomcat temp lrwxrwxrwx tomcat tomcat webapps lrwxrwxrwx tomcat tomcat work
/etc/tomcat9
drwxrwxrwx root tomcat Catalina/ -rwxrwxrwx root tomcat catalina.properties -rwxrwxrwx root tomcat context.xml -rwxrwxrwx root tomcat jaspic-providers.xml -rwxrwxrwx root tomcat logging.properties drwxrwxrwx root tomcat policy.d/ -rwxrwxrwx root tomcat server.xml -rwxrwxrwx root tomcat tomcat-users.xml -rwxrwxrwx root tomcat web.xml
/usr/share/tomcat9/logs
-rwxrwxrwx 1 tomcat tomcat 2129 Mar 9 13:38 catalina.2023-03-09.log.gz* -rwxrwxrwx 1 tomcat tomcat 733 Mar 14 18:39 catalina.2023-03-14.log.gz* -rwxrwxrwx 1 tomcat tomcat 1613 Mar 15 14:19 catalina.2023-03-15.log.gz* -rwxrwxrwx 1 tomcat tomcat 3768 Mar 16 13:43 catalina.2023-03-16.log.gz* -rw-r----- 1 tomcat tomcat 4958 Mar 17 11:18 catalina.2023-03-17.log.gz -rw-r----- 1 tomcat adm 35438 Mar 20 08:04 catalina.2023-03-20.log -rwxrwxrwx 1 tomcat tomcat 32483 Mar 20 08:04 catalina.out* -rwxrwxrwx 1 syslog adm 311661 Mar 20 07:21 catalina.out.1* -rwxrwxrwx 1 syslog adm 1909 Mar 12 07:16 catalina.out.2.gz* -rwxrwxrwx 1 tomcat tomcat 45 Mar 9 10:28 localhost.2023-03-09.log.gz* -rwxrwxrwx 1 tomcat tomcat 45 Mar 15 14:03 localhost.2023-03-15.log.gz* -rwxrwxrwx 1 tomcat tomcat 45 Mar 16 08:00 localhost.2023-03-16.log.gz* -rw-rw-r-- 1 tomcat tomcat 45 Mar 17 09:52 localhost.2023-03-17.log.gz -rw-r----- 1 tomcat adm 0 Mar 20 07:21 localhost.2023-03-20.log -rwxrwxrwx 1 tomcat tomcat 56 Mar 9 10:28 localhost_access_log.2023-03-09.txt.gz* -rwxrwxrwx 1 tomcat tomcat 56 Mar 15 14:03 localhost_access_log.2023-03-15.txt.gz* -rwxrwxrwx 1 tomcat tomcat 3074 Mar 16 13:37 localhost_access_log.2023-03-16.txt.gz* -rw-r----- 1 tomcat tomcat 5542 Mar 17 14:34 localhost_access_log.2023-03-17.txt.gz -rw-r----- 1 tomcat adm 875 Mar 20 07:22 localhost_access_log.2023-03-20.txt
Tomcat配置文件内容
server.xml日志设置
<Valve className=org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b@ />
server.xml Connector配置
<Connector protocol="AJP/1.3" address="::1" port="8009" server="Apache-Coyote/1.1" secretRequired="false" redirectPort="8443" />
tomcat-users.xml配置
<role rolename="admin"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user password="<mypassword>" roles="admin,manager-gui,manager-script" username="robtot" />
环境信息
- Ubuntu 22.04
- Tomcat 9.0.58
- NetBeans IDE 17(试过snap下载和官方手动下载)
- JavaEE 5
已尝试操作
- 将用户
robtot加入tomcat组 - 停止本地运行的
tomcat9和apache2服务 - 以root身份启动NetBeans:
此操作消除了日志权限错误,但Tomcat仍启动失败;且cd /usr/lib/apache-netbeans/bin ./netbeanstomcat用户为无法登录账号,无法切换至该用户启动Tomcat。
内容的提问来源于stack exchange,提问作者robtot
相关产品推荐
相关产品推荐

