【问题标题】:Java app as windows service with database connectionJava 应用程序作为具有数据库连接的 Windows 服务
【发布时间】:2011-10-25 17:36:15
【问题描述】:

我正在尝试使用 tomcat 7 将 java 应用程序作为 Windows 服务运行。在此应用程序中,我通过 Hibernate 与 MySql 建立了数据库连接。当我运行tomcat时,它停在这一行:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 

我在 WEB-INF\lib 目录中有所有必要的休眠 jar。 当从 Eclipse 运行这个应用程序时,它运行良好。 这是 run.bat 文件:

cd "c:\Users\sl300\Project\temp3\build\classes"
temp3.exe //IS//temp3 ^
--Install="c:\Users\sl300\Project\temp3\build\classes\temp3.exe" ^
--Description="My Watcher Service" ^
--Jvm=auto ^
--Classpath="c:\Users\sl300\Project\temp3\build\classes" ^
--StartMode=jvm --StartClass=ServiceControl ^
--StartMethod=windowsService ^
--StartParams=start ^
--StopMode=jvm ^
--StopClass=ServiceControl ^
--StopMethod=windowsService ^
--StopParams=stop ^
--LogPath="c:\Users\sl300\Project\temp3\logs" ^
--StdOutput=auto ^
--StdError=auto 
temp3w //MS//

我需要做些什么来完成这项工作?

【问题讨论】:

  • 没有可用的日志文件?我敢打赌 hibernate 找不到它的配置...你使用嵌入式 tomcat 吗?
  • 我收到了这个错误:java.lang.NoClassDefFoundError: org/hibernate/Session
  • 好吧,这就是我的想法。类路径中没有后备类,我猜tomcat类也没有。如果您使用嵌入式tomcat,则必须重新处理该文件。查看tomcat/bin文件夹和对应的启动脚本。
  • 好的,我将所有 jar 移到所有 tomcat jar 所在的“c:\Program Files\Apache Software Foundation\Tomcat 7.0\lib”,并在 run.bat 文件中进行了更改:“-- Classpath="c:\Program Files\Apache Software Foundation\Tomcat 7.0\lib" ^" 它仍然给我同样的错误
  • 你看我的回答了吗。试试看。 tomcat 也有指向 tomcat/bin 中 JAR 的引导类路径。

标签: hibernate tomcat service sessionfactory


【解决方案1】:

tomcat.apache.org 上提供了有关如何将 Tomcat 配置为 Windows 服务的详细手册。这应该可以解决您的问题。

它仅在Windows specific ZIP downloads 中提供,而不是通用的。

编辑:这不是一个答案,但我确实想在 comments 部分停止聊天:

  1. 为什么您的temp3.exe 位于文件夹...build/classes 中,这对我来说没有意义?
  2. 为什么将其重命名为temp3.exe

【讨论】:

  • 谢谢,但我确实找到了一种方法。我将我的项目导出到一个 jar 文件中,并将 tomcat.exe 与 run.bat 文件一起插入其中。谢谢!!
猜你喜欢
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-03-23
相关资源
最近更新 更多