Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 在tomcat上运行web应用程序_Jsp_Tomcat_Web Applications_Servlets_Profiling - Fatal编程技术网

Jsp 在tomcat上运行web应用程序

Jsp 在tomcat上运行web应用程序,jsp,tomcat,web-applications,servlets,profiling,Jsp,Tomcat,Web Applications,Servlets,Profiling,我正在尝试分析tomcat服务器。My profiler输出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) 我在这

我正在尝试分析tomcat服务器。My profiler输出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服务器执行的方法每次都不同吗?它们没修好吗?就像启动服务器、发出请求或关闭服务器时执行某些方法一样?我对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两次是否都以相同的顺序执行相同的方法?据我所知,它不是。为什么?


谢谢。

看起来Tomcat在您使用时自动重新加载web应用程序。您可能希望检查文件上相对于计算机上系统时钟的时间戳。如果将来修改了文件,则可以触发此类行为。检查您的
日志/catalina.out
以查看是否有任何自动部署活动。

请发布两个不同的序列。请检查我编辑的问题。我上传了其中一个不同之处。