0

WebApplication に Spring MVC 3 を使用しています。アプリケーションから奇妙な動作が見られます。ユーザーがアクション (例: ボタンのクリック) を実行すると、コントローラーのログが 2 回ログに記録され、コントローラーでの後続の呼び出しもログに記録されます。使用したコントローラーはデフォルトのシングルトンです。そう、

  1. コントローラーにスレッド情報を出力したいと思います(threadNameのように、Thread.getName()..was Uniqueを試しました)。何か助けはありますか?

  2. Spring コンテナーが 1 つしかロードされていないことを確認するにはどうすればよいですか? - 助言がありますか?

log4j プロップ:

    `log4j.appender.ROLL_FILE=org.apache.log4j.RollingFileAppender 
     log4j.appender.ROLL_FILE.File=/ws/was/dept/logs/${module.jvm.instance}_module.log
     log4j.appender.ROLLING_FILE.Append=true 
     log4j.additivity.ROLLING_FILE.Append=false 
     log4j.appender.ROLLING_FILE.MaxFileSize=10MB 
     log4j.appender.ROLLING_FILE.MaxBackupIndex=20 
     log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout 
     log4j.appender.ROLLING_FILE.layout.ConversionPattern=[module] %d - %c -%-4r [%t] %-5p %c %x - %m

Web.xml :

<display-name>module</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring/int/root-int-context.xml,/WEB-INF/spring/root-  context.xml</param-value>
   </context-param>
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
      <servlet>
    <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet.xml</param-value>
      </init-param>          
     <load-on-startup>1</load-on-startup>
  </servlet>`
   <servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
 ..........
 .........
 .........

ありがとう

4

2 に答える 2

1
  1. Thread.getId()一意のスレッド ID を取得するために使用します。
  2. log4jロガーの設定を確認してください- 私はあなたが使用していると推測していますslfj.あなたはそれを持っていて、additivity偽であると定義します。
于 2012-09-28T18:29:16.523 に答える
0

スレッド情報をコントローラーに出力したいです(threadNameのように。Thread.getName()を試しました..ユニークでした)

  • ロギング フレームワークを使用します。いくつかの例を見つけることができます。ログバックの設定はこちら

Spring コンテナーが 1 つしかロードされていないことを確認するにはどうすればよいですか?

  • ここで何を意味するのか本当にわかりませんが、web.xml で contextConfigLocation を適切に定義していれば、Spring コンテナーは正しくロードされます。

    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:/META-INF/spring/*.xml 
    </param-value>
    

于 2012-09-28T18:23:47.417 に答える