1

私は今本当に愚かだと感じていますが、私は一日中苦労していて、手がかりがありません、いくつかの助けをいただければ幸いです:)

自分のコンピューターにインストールされているserveltサーバーapachetomcat7.0.27に関連するEclipse(indigo sr2)を実行すると、正常に動作するstruts2Webアプリを開発しました。私がしているのは、Webアプリケーションのフォルダーを右クリックして->実行->サーバーで実行することだけです。次に、サーブレットのURLアドレスをコピーしてパスすると、Eclipseブラウザーまたは他のブラウザー(chrome、firefox)のいずれかで正常に実行されます。

今私がしたいのは、日食なしで実行することです。そこで、Webアプリケーションを.warファイルにエクスポートし(webappフォルダーを右クリック->エクスポート-> Warファイル)、アプリマネージャーのtomcatWebインターフェイスを使用してデプロイしようとしました。私のコンピューターを介してwarファイルを取得し、デプロイボタンをクリックします。これまでのところ簡単です!

次に、私のWebアプリがアプリマネージャーインターフェイスの[アプリケーション]タブに表示されますが、[実行]ボタンをクリックすると、次のメッセージが表示されます。

失敗:コンテキストパス/MMSProjectのアプリケーションを開始できませんでした

(元のメッセージはフランス語です。tomcat7言語を変更する方法が見つかりませんでした。したがって、これは英語でのメッセージと正確に一致しない可能性があります。この翻訳が十分に近いことを願っています。MMSProjectは私のWebアプリの名前です)。

そのため、struts2Webサイトでいくつかのstruts2webappの例をダウンロードし、同じプロセスを使用してtomcat7にstruts2-blankをデプロイしようとしました。これは完全に正常に機能します。Tomcatアプリマネージャーから実行できます。したがって、私の問題は、Tomcat自体ではなく、自分自身のwarファイルに起因していると思いますが、Eclipseによって生成されているため、プロセスのこの部分がうまくいかない可能性があるのは奇妙に思えます。

そして、私はそれに固執しています。皆さんご存知ですか:

  • 何が問題になっているのかについての詳細情報を取得するにはどうすればよいですか(tomcatログを調べましたが、エラーメッセージは見つかりませんでした)。これは私が問題を解決するのに大いに役立つかもしれません!
  • 私のウェブアプリがEclipseから実行されるが、Tomcatから直接実行されない理由はありますか?
  • Tomcatから実行するにはどうすればよいですか?:)

よろしくお願いします!私は今、ちょっと必死です、展開がそんなに苦痛になるとは思いませんでした!

編集:Tomcatのログを再確認し、実際にcatalinaで見つけました。[date] .log:

  • 重大:エラーfilterStart2012年6月21日1:48:42PM org.apache.catalina.core.StandardContext startInternal
  • 重大:以前のエラーが原因でコンテキスト[/MMSproject]の起動に失敗しました
  • 2012年6月21日1:48:42PMorg.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
  • 墓:Webアプリケーション[/ MMSproject]は、タイプ[com.opensymphony.xwork2.inject.ContainerImpl $ 10](値[com.opensymphony.xwork2.inject.ContainerImpl$10@2de3bcb5])のキーとタイプの値でThreadLocalを作成しました[java.lang.Object []](値[[Ljava.lang.Object; @ 427a269c]))が、Webアプリケーションの停止時に削除できませんでした。スレッドは、メモリリークの可能性を回避するために、時間の経過とともに更新されます。
  • 2012年6月21日1:48:42PMorg.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
  • 墓:Webアプリケーション[/ MMSproject]は、タイプ[com.opensymphony.xwork2.inject.ContainerImpl $ 10](値[com.opensymphony.xwork2.inject.ContainerImpl$10@617ceddc])のキーとタイプの値でThreadLocalを作成しました[java.lang.Object []](値[[Ljava.lang.Object; @ 50e43884])ですが、Webアプリケーションが停止したときに削除できませんでした。スレッドは、メモリリークの可能性を回避するために、時間の経過とともに更新されます。

そしてこれはlocalhost。[date].localhostにあります:

2012年6月21日1:48:42PMorg.apache.catalina.core.StandardContext filterStart SEVERE:com.opensymphony.xwork2.util.FileManager $ FileRevision.needsReloading(FileManager.java: 209)com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(FileManager.java:60)at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:325)at org.apache.struts2.config .StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:168)at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:220)at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:61)at org.apache.struts2.dispatcher.Dispatcher。getContainer(Dispatcher.java:774)at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:191)at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)at org.apache .catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)at org.apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.java: 103)org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4638)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294)at org.apache.catalina.util.LifecycleBase .start(LifecycleBase.java:150)at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet。java:1247)org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:747)at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:222)at javax.servlet.http.HttpServlet .service(HttpServlet.java:641)at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)atorg.apache。 catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:186)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 243)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)atorg。apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain。 java:210)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)at org.apache.catalina.authenticator .AuthenticatorBase.invoke(AuthenticatorBase.java:581)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)(org)。apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor。 java:999)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:565)at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:307)at java.util .concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:565)at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java: 307)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:565)at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java: 307)java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)run(不明なソース)at java.lang.Thread.run(不明なソース)run(不明なソース)at java.lang.Thread.run(不明なソース)

4

1 に答える 1

4

わかりましたので、私はアンサーを見つけて、同じ問題を抱えている人を助けるために投稿したいと思いました!

これは小さな詳細ですが、一度知ってしまえば、苦労して祈る時間を大幅に節約できる可能性があります。あなたの開発の始まり(つまり、おそらく数週間前のハードコーディング!)。

したがって、基本的にこれは struts.xml に入れたいものです:

<constant name="struts.devMode" value="false" />

それ以外の :

<constant name="struts.devMode" value="true" />

皆さん、頑張ってください!

于 2012-06-21T14:59:37.967 に答える