2012-08-07 250 views
0

我正在嘗試配置tomcat服務器。我的分析器輸出由tomcat服務器執行的方法列表。我使用Ubuntu 12.04。我要做的就是如下:在tomcat上運行web應用程序

1)啓動Tomcat服務器(./startup.sh)

2)打開瀏覽器,並執行在Java develooped Web應用程序(幷包含JSP頁)如(http:// localhost:8080/bititit。)我已經把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是否在兩個時間以相同的順序執行相同的方法?據我注意到,事實並非如此。爲什麼?

謝謝。

+0

請張貼兩個不同的序列。 – Stefan 2012-08-07 10:19:21

+0

請通過我編輯的問題。我上傳了其中一個區別。 – user523956 2012-08-07 11:06:23

回答

0

它看起來像Tomcat在您使用它時自動重新加載Web應用程序。您可能需要檢查相對於計算機上系統時鐘的文件時間戳。如果您將來修改了文件,可以觸發這種行爲。檢查您的logs/catalina.out以查看是否有任何自動部署活動正在進行。