在 WSL 上安装 tomcat 9

问题描述 投票:0回答:3

在WSL上安装tomcat 9后,系统无法识别。

由于 systemctl 命令在 WSL 上不起作用,我使用了以下命令:

sudo service tomcat9 start

回归

tomcat9: unrecognized service

我按照2种方式安装,还是出现了同样的问题。

参考资料为:

https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804

https://linuxconfig.org/ubuntu-20-04-tomcat-installation

这个问题有什么线索吗?

这是我的环境:

Windows 10 版本 2004

ubuntu 20.04(WSL)

openjdk版本:“1.8.0_265”

更新:

我在安装了 ubuntu 20.04 的 gcp vm 实例上执行了相同的过程来调查问题,发现该过程在 ubuntu 20.04 上没有问题,而不是在 WSL 上。

所以我假设这个问题源自WSL。

记录我的所有过程,希望有人找到在 WSL-ubuntu 上安装 tomcat 9 的解决方案。

java安装

sudo apt update
sudo apt install openjdk-8-jdk

在/etc/environment中设置JAVA_HOME

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin"

source /etc/environment

tomcat 9 安装

sudo apt install tomcat9 tomcat9-admin

检查8080端口是否开放(正)

ss -ltn

检查服务命令是否有效(正)

sudo service tomcat9 stop
sudo service tomcat9 start
java tomcat java-8 windows-subsystem-for-linux tomcat9
3个回答
4
投票

看来tomcat9包坏了。

要在 WSL 上使用 tomcat9,您可以:

  • 下载tomcat9并自行安装
  • 尝试修复损坏的安装

这是我修复计算机上的安装所做的操作:

  • https://tomcat.apache.org/download-90.cgi
  • 下载 Tomcat 9 的 zip 版本
  • 在 Windows 资源管理器中打开文件夹 \wsl$\Ubuntu\usr\share omcat9
  • 为了修复 tomcat,我将所有丢失的文件夹从 zip 复制到 wsl 安装:conf、webapps 和 work
  • 我还必须为日志创建文件夹 /usr/share/tomcat9/logs (您可以从 Linux shell 或 \wsl$\Ubuntu 中的 Windows 资源管理器创建它)
  • 然后我可以使用
    sudo /usr/share/tomcat9/bin/startup.sh
    启动 tomcat 并在 /usr/share/tomcat9/logs/catalina.out 中获取日志

0
投票

我通过以下步骤解决了问题:

  1. 启用 systemd,请参阅 WSL 2 - 启用 systemd
  2. 使用 cmd
    wsl --shutdown
    wsl -d Ubuntu genie -s
  3. 重新启动 WSL Ubuntu
  4. 重新安装tomcat9,带shell
    apt-get remove tomcat9
    apt-get install tomcat9

然后输入

service tomcat9 status
,查看机器中的工作原理。


0
投票

令人震惊的是,安装tomcat9-admin后我的机器上没有

service tomcat9 status
。但是如果我使用 sudo 创建了 /usr/share/tomcat9/log 目录,那么我可以使用 /usr/share/tomcat9/bin/startup.sh 启动 tomcat9。我还必须在此之前运行一个取消屏蔽命令:

sudo apt install systemctl
sudo systemctl unmask tomcat9
sudo mkdir /usr/share/tomcat9/log
sudo /usr/share/tomcat9/bin/startup.sh

这仍然是非常不规则的。我认为这可能与 WSL 处理端口的方式有关,因为 mariadb 和 apache2 不会遇到相同的问题(开箱即用)。

© www.soinside.com 2019 - 2024. All rights reserved.