2011-09-16 15 views
0

Tomcatの起動時にクラスをロードして、他のクラスの変数を実際に初期化したいとします。スタートアップ時の負荷の問題tomcat

<servlet> 
    <servlet-name>LoadConfigurations</servlet-name> 
    <servlet-class>Loader.LoadConfigurations</servlet-class> 
    <init-param> 
     <param-name>env</param-name> 
     <param-value>dev</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

を次のように私はのappName/WEB-INF/web.xmlのを編集していると私はどのようにチェックしますか/ appNameの/ WEB-INF /クラスに

を私のサーブレットLoadConfigurationを配置していますサーブレットが呼び出されるかどうか私は初期化されたクラスから値を表示しようとすると、それはnullを返しますので

+0

コンストラクタ内のログやSystem.out.println( "Inside Constuctor")とinit()メソッドの開始と終了を維持してください。ログを取得しているかどうかを確認してください。 – Jayesh

答えて

1

は二つの問題があります。

  1. コンパイルされたクラスは、パッケージ名のフォルダ構成基に入る必要があります。あなたのケースではLoader

  2. というフォルダには、サーブレットを呼び出すには、サーブレットの場合は、コンテナは、init()メソッドサーブレットを呼び出す必要があり、あなたのweb.xmlファイル

1

<ServletMapping>を追加する必要があります初期化されました。そのメソッドを実装/オーバーライドし、そこからログに何かを書き込もうとしてください。

0

これは

ステップ1のTomcat 7.0のためのソリューションです:あなたのWebアプリケーション/サーブレットのwarファイルを作成します 。 Eclipseを使用している場合は、「ファイル」 - >「エクスポート」 - >「Web-> WAR」ファイルを開き、既知の場所に保存します。

ステップ2: あなたのtomcatのホームフォルダを見つけます。 そのためには、tomcat/apache-tomcat-7.0.41/binに移動し、./startup.shを実行してください。 これは、グローバル変数名のいくつかを表示します。 CATALINA_HOMEの注記をメモしてください。

ステップ3: コピーCATALINA_HOMEのステップ1からWARファイル/ Webアプリケーション

ステップ4: 次に、CATALINA_HOME/confに/ {エンジン} /localhost/MyServlets.xmlのXMLファイルを作成します。

あなたは3

今ステップでwarファイルをコピーした場所を指すように

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
<Context deployOnStartup="true" docBase="/home/ubuntu/Downloads/apache-tomcat-7.0.42/webapps/" reloadable="true"> 
<Manager pathname=""/> 
</Context> 

変更文書ベースは、Tomcat/apacheの-tomcatに-7.0.41/binに移動し./startup.shを実行行くことができます。 サーブレットが自動的に開始されます。 これが役立つことを願っています。

関連する問題