AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 509833
Accepted
Matteo Tassinari
Matteo Tassinari
Asked: 2013-05-23 02:27:36 +0800 CST2013-05-23 02:27:36 +0800 CST 2013-05-23 02:27:36 +0800 CST

无法配置 tomcat 7 使用自己的 JDK

  • 772

我在配置tomcat 7以在 Windows 上作为服务运行时遇到以下问题。

更具体地说,tomcat 是安装在我们客户服务器上的 Web 应用程序的一部分,它必须在其中包含所有依赖项。

在这种情况下,tomcat 依赖于 Java JDK/JRE,因此我下载了一个独立的 jdk(版本 1.7u21)及其 jre,并将其放在 tomcat 文件夹中。

所以现在我的目录树是这样的:

tomcat7
  - bin
  - conf
  - jdk
    - jre
  - logs
  - temp
  - webapps
  - work

然后我继续使用命令将其安装为服务

tomcat\bin\service.bat install

jvm它在模式下安装没有问题。

请注意,我修改了 service.bat 文件,以便正确设置所有需要的变量,即 CATALINA_HOME、CATALINA_BASE、JAVA_HOME 和 JRE_HOME,最后两个指向内部 jdk/jre。

但是,如果我尝试启动该服务,我会收到一条错误消息,指出它无法启动该服务并引用错误代码 1。

查看tomcat日志,它说:

[2013-05-22 12:22:09] [info]  [ 5392] Commons Daemon procrun (1.0.15.0 32-bit) started
[2013-05-22 12:22:10] [info]  [ 5392] Running 'AGEws2Tomcat7' Service...
[2013-05-22 12:22:10] [info]  [ 2764] Starting service...
[2013-05-22 12:22:10] [error] [ 2764] %1 is not a valid Win32 application.
[2013-05-22 12:22:10] [error] [ 2764] Failed creating java C:\AGEws\tomcat7\jdk\jre\bin\server\jvm.dll
[2013-05-22 12:22:10] [error] [ 2764] %1 is not a valid Win32 application.
[2013-05-22 12:22:10] [error] [ 2764] ServiceStart returned 1
[2013-05-22 12:22:11] [error] [ 2764] %1 is not a valid Win32 application.
[2013-05-22 12:22:11] [info]  [ 5392] Run service finished.
[2013-05-22 12:22:11] [info]  [ 5392] Commons Daemon procrun finished

我试着用谷歌搜索一下这个部分Failed creating java,我发现了一些关于.dll文件可能依赖的信息,我已经找到了,但我不知道我应该把它放在哪里,如果这确实是问题所在。

我还尝试在java模式下安装该服务,它可以工作,但使用我计算机自己的 JVM 而不是内部 JVM,而我需要它来使用内部 JVM。

为了让 tomcatjvm使用自己的 jdk/jre 在模式下作为服务正常工作,我可以/必须做什么?

请注意,我们的 Web 应用程序曾经随 tomcat 5 一起发布,它在jvm模式下运行良好。

windows-service
  • 2 2 个回答
  • 4644 Views

2 个回答

  • Voted
  1. Best Answer
    Matteo Tassinari
    2013-05-23T04:10:54+08:002013-05-23T04:10:54+08:00

    最后我发现解决方案是将启动和停止模式设置为java同时提供带有选项的显式 JAVA_HOME

    --JavaHome /path/to/internal/jdk
    

    进行修改后,服务工作正常,即使是在java模式而不是jvm旧服务过去的模式。

    • 2
  2. Rhys Paterson
    2015-10-06T15:49:07+08:002015-10-06T15:49:07+08:00

    为了澄清 Matteo 的回答(并帮助不太熟悉 Java 世界的 Windows 人员),我们在 64 位 Windows Server 2012(非 R2)上使用 Tomcat 8 时遇到了完全相同的问题。我们正在使用/配置 IBM Rational DOORS Help 9.6.1 - 尽管我们在尝试在相对现代的 64 位版本的 Windows 上进行配置时,已经在大多数 IBM Java/Tomcat 风格的产品中看到了这一点。

    我们必须使用以下内容更新位于 Tomcat 安装目录中的 service.bat 文件:

    --StartMode java ^
    --StopMode java ^
    --JavaHome "C:\Program Files (x86)\Java\jre7" ^
    

    启动/停止选项从“jvm”更改而来,而 JavaHome 选项是配置文件的新添加项。然后您通过以下方式执行服务的安装:

    service.bat install <service name>
    

    在我们的例子中,服务名称是 DOORS_Help。我们有一个 64 位 Tomcat 安装和一个 32 位 JRE 安装,它们显然可以一起工作——这是供应商提供的。

    编辑:另一个选项似乎是在安装 Tomcat之前手动设置 JRE_HOME 和 JAVA_HOME 环境变量。否则您将需要重新安装 Windows 服务。我知道这与原始帖子相矛盾,但似乎并非所有 Tomcat 安装都是一样的!

    • 0

相关问题

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 如何授予用户安装 Windows 服务的能力?

  • Windows:我可以为服务帐户映射网络驱动器吗?

  • 无法使用 sc 命令删除现有服务:指定的服务不作为已安装的服务存在

  • 如何使用脚本远程重启 Windows 服务?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve