【发布时间】:2013-10-14 17:53:42
【问题描述】:
这是我在这个论坛上的第一篇文章。如果我违反了任何规范,请道歉。
我正在 Tomcat 容器中编写一个 RESTful servlet,将在启动时(通过 JDBC)连接到数据库,然后在接收 HTTP 请求时,它将 HTTP POST 请求中的数据插入到数据库中。
我现在知道可以通过在 jersey webapp 类中实现 ServletContextListener 接口在 contextInitialized 方法中初始化 DB 连接。 但是,我还有一个构造函数,它会不断为每个 HTTP 发布请求调用。我刚刚定义了这个构造函数,因为我想我可能会在那里添加一些调试消息来理解流程。
请注意,我的 web.xml 将 load-on-startup 参数设置为 1。
我想知道的是: 为什么 Tomcat 为每个指向我的 webservice 的 HTTP 请求调用我的 webapp 类构造函数? 此外,在我的 webapp 的日志中,我注意到 init 方法在构造函数之前被调用。这听起来很奇怪。对 ?还是不是真的? 但是我的网络服务的每个 HTTP 请求都不会调用 init 方法。仅在Tomcat启动时调用。
我的 Tomcat 版本是 v7.0,我使用的是 JDK 1.7。
我们将不胜感激任何有助于理解这种行为的帮助。
【问题讨论】:
标签: tomcat constructor initialization jersey