3

編集:以下のコメントで見つけることができる解決策は、JSFの実装をMyFacesからSunのMojarraに変更することを前提としています。

やあ、

MyFaces 2.0.0で本当に厄介な問題が発生しました(より正確には、2.0.1と2.0.2でもチェックアウトしましたが、問題は残っています)。

私は今MyFacesの下でアプリケーションを書いています。私のアプリケーションで簡単に言えば、私はフレームワークを使用しています:Spring、Hibernate、JSF(MyFaces実装)私のアプリケーションコンテナーはTomcat(6.0.29バージョン)です。私はmavenを使用してビルドとデプロイを行います(バージョン3.0)。

問題は、maven(mvn tomcat:redeploy)を介してアプリケーションを再デプロイしようとすると、最初にアプリケーションをアンデプロイしてから再度デプロイしようとすることです。しかし、アンデプロイは成功しませんでした。私は情報を持っています:

SEVERE: The web application [/adam] created a ThreadLocal with key of type 
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@4b0a4d7c]) and a value of type
[org.apache.myfaces.config.RuntimeConfig] (value  org.apache.myfaces.config.RuntimeConfig@11652e61])
but failed to remove it when the web application was stopped.
This is very likely to create a memory leak.

このエラーのため、Tomcatはアプリケーションをアンデプロイできません。

INFO: Undeploying context [/adam]
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam\WEB-INF\lib] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam\WEB-INF] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar deleteDir
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:46 org.apache.catalina.startup.ExpandWar delete
SEVERE: [D:\Program Files\apache-tomcat-6.0.29\webapps\adam] could not be completely deleted. The presence of the remaining files may cause problems
2010-12-02 11:47:49 org.apache.catalina.startup.HostConfig deployDirectory

WEB-INF \ lib内のすべてのライブラリと、Log4Jからのログを保持しているファイルを削除できません。

ELFactoryImplを提供するライブラリからの接続メモリリークもあります。

SEVERE: The web application [/adam] created a ThreadLocal with key of type [null]
(value [org.apache.myfaces.el.convert.VariableResolverToELResolver$1@693985fc])
and a value of type [java.util.HashSet] (value [[]]) but failed to remove it
when the web application was stopped.
This is very likely to create a memory leak.

このメモリリークを取り除く方法は?

私は本当に長い間答えを探していましたが、解決策を見つけることができません。この問題はmyfaceのjiraで見つかりました:https ://issues.apache.org/jira/browse/MYFACES-2942 しかし、それについてどう考えるかわかりません。バージョン2.0.3を待つ必要がありますか?

ELからのメモリリークは最初のものにつながっていると思います。

私を助けてください !;)必要に応じて詳細を提供できます。

4

1 に答える 1

2

この問題はすでに報告されており、修正される予定です。現在のところ、3つのオプションがあります。

  1. 警告メッセージを表示し、MyFacesの担当者が修正をリリースするまで待ちます。

  2. 提案されたパッチを現在のMyFaces実装に適用します。

  3. MyFacesをMojarra(リファレンス実装)に置き換えます。これにより、この問題は発生しません。

于 2010-12-02T11:45:03.537 に答える