Java 应用程序作为具有数据库连接的 Windows 服务
Posted
技术标签:
【中文标题】Java 应用程序作为具有数据库连接的 Windows 服务【英文标题】:Java app as windows service with database connection 【发布时间】: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 的引导类路径。
【参考方案1】:
tomcat.apache.org 上提供了有关如何将 Tomcat 配置为 Windows 服务的详细手册。这应该可以解决您的问题。
它仅在Windows specific ZIP downloads 中提供,而不是通用的。
编辑:这不是一个答案,但我确实想在 comments 部分停止聊天:
-
为什么您的
temp3.exe
位于文件夹...build/classes
中,这对我来说没有意义?
为什么将其重命名为temp3.exe
?
【讨论】:
谢谢,但我确实找到了一种方法。我将我的项目导出到一个 jar 文件中,并将 tomcat.exe 与 run.bat 文件一起插入其中。谢谢!!以上是关于Java 应用程序作为具有数据库连接的 Windows 服务的主要内容,如果未能解决你的问题,请参考以下文章
如何制作和连接具有上传、设置页眉和页脚报告的Java swing程序
作为字节跳动面试官,2021年Java开发前景如何?看这篇文章准没错!