将java servlets作为独立进程运行

时间:2014-04-30 15:35:08

标签: java tomcat servlets

我对java / tomcat很新,并想知道是否有可能为tomcat创建一个java servlet,它将在tomcat本身启动时启动,即独立于收到的任何请求,并将继续运行直到tomcat停止?此外,这样的servlet是否可以无限制地访问运行它的机器,或者它是否由tomcat进行沙盒化?

我已经在Python中有类似的东西,其中以root权限运行的主进程启动包含简单Web服务器的子线程。然后,任何进入的请求都可以根据root权限以root身份对计算机进行更改。其动机是通过内部网上可用的基于浏览器的GUI与微控制器对话(因此安全性不是问题,它似乎是一种允许人们远程控制实验室设备的简单方法)。我很好奇是否可以在java / tomcat生态系统中完成......

3 个答案:

答案 0 :(得分:2)

Tomcat没有沙箱,它不像Java Applet。它具有您用来运行它的用户的所有权限。因此,如果它以root用户身份运行,它将具有root权限(请注意)。

答案 1 :(得分:2)

是的,你可以。

在servlet中实现init()方法,并添加:

   <load-on-startup>1</load-on-startup>

在web.xml文件中。

如果您在此主机上添加jvm权限,则可以访问主机资源:http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html

答案 2 :(得分:1)

如果我正确理解您的问题,您希望运行后台进程接受请求,然后对Tomcat正在运行的服务器执行某些操作。

您不需要任何后台流程。 Tomcat本身将尽职尽责地处理任何传入的HTTP请求,然后根据web.xml中的配置(或用于编写应用程序的任何框架的配置和/或约定)执行相应的servlet。