在tomcat上运行Web应用程序

时间:2012-08-07 09:45:06

标签: jsp tomcat web-applications servlets profiling

我正在尝试配置tomcat服务器。我的探查器输出由tomcat服务器执行的方法列表。我使用的是Ubuntu 12.04。我的工作如下:

1)启动tomcat服务器(./startup.sh)

2)打开浏览器并执行在java中开发的Web应用程序(并包含jsp页面),例如(http:// localhost:8080 / bodgeit。)我把bodgeit web应用程序放在tomcat 7.0.28的webapps目录中(我在tomcat上运行bodgeit web应用程序)

3)我在这个web应用程序中执行一些操作,如登录,添加内容,更改密码,注销等。

4)然后我通过./shutdown.sh停止服务器。当我运行shudown脚本时,我的探查器会输出包含运行tomcat时执行的方法列表的文件。

现在我的问题是:我通过执行上述步骤两次或多次收集个人资料。我在步骤3中在Web应用程序中执行完全相同的操作(以相同的顺序)。但是我在两个输出中获得的方法序列是不同的。为什么会这样?我的探查器也能够保存方法序列。

apache web serever执行的方法每次都有所不同吗?他们不是固定的吗?比如在启动服务器,发出请求或关闭服务器时执行某些方法吗?我也是tomcat,servlet和jsp的新手。我对它是如何工作有基本的了解。对于例如第一个文件中不存在以下序列,并存在于第二个文件中。像这样,还有很多不同之处。

<callingContextTree><method declaringClass="Lorg/apache/catalina/startup/HostConfig$DeployWar;" name="run" params="" return="V"><callsite instruction="7"><method declaringClass="Lorg/apache/catalina/startup/HostConfig;" name="deployWAR" params="Lorg/apache/catalina/util/ContextName; Ljava/io/File;" return="V"><callsite instruction="555"><method declaringClass="Lorg/apache/catalina/core/StandardHost;" name="addChild" params="Lorg/apache/catalina/Container;" return="V"><callsite instruction="20"><method declaringClass="Lorg/apache/catalina/core/ContainerBase;" name="addChild" params="Lorg/apache/catalina/Container;" return="V"><callsite instruction="15"><method declaringClass="Lorg/apache/catalina/core/ContainerBase;" name="addChildInternal" params="Lorg/apache/catalina/Container;" return="V"><callsite instruction="75"><method declaringClass="Lorg/apache/catalina/util/LifecycleBase;" name="start" params="" return="V"><callsite instruction="88"><method declaringClass="Lorg/apache/catalina/core/StandardContext;" name="startInternal" params="" return="V"><callsite instruction="517"><method declaringClass="Lorg/apache/catalina/util/LifecycleBase;" name="start" params="" return="V"><callsite instruction="88"><method declaringClass="Lorg/apache/catalina/session/StandardManager;" name="startInternal" params="" return="V"><callsite instruction="4"><method declaringClass="Lorg/apache/catalina/session/StandardManager;" name="load" params="" return="V"><callsite instruction="43"><method declaringClass="Lorg/apache/catalina/session/StandardManager;" name="doLoad" params="" return="V"><callsite instruction="61"><method declaringClass="Lorg/apache/catalina/core/ContainerBase;" name="getLoader" params="" return="Lorg/apache/catalina/Loader;"/></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callsite></method></callingContextTree>

有人可以帮我找一下发生的事吗?简而言之,如果我启动服务器,访问tomcat的主页并停止服务器。我再次这样做。 tomcat两次都以相同的顺序执行相同的方法吗?据我所知,它没有。为什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

看起来Tomcat在您使用它时会自动重新加载Web应用程序。您可能需要检查文件中与系统上的系统时钟相关的时间戳。如果将来修改了文件,则可以触发此类行为。检查您的logs/catalina.out,看看是否有任何自动部署活动。