2012-02-12 34 views
1

ファイルシステムの特定のディレクトリを読み取れる小さなアプリケーションをテストしたかったのです。 Eclipseをtomcatで使用するとうまくいきますが、私がインストールしたtomcat.7のwepAppsディレクトリにwarを展開しようとすると、悲しいことにクラッシュします(下記の例外を参照)。私はcatalina.policyのアプリケーションにも権限を追加しましたが、何も変わりません。Tomcatでの展開の問題

権限:

//the permission used to grant read/write to test directory for readSystemFile 
grant codeBase "file:${catalina.base}/webapps/readSystemFile/WEB-INF/classes/-" { 
    permission java.io.FilePermission 
     "D:/home/dev/test/*", "read, write"; 
}; 

例外:

GRAVE: Exception fixing docBase for context [/readSystemFile] 
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\readSystemFile\META-INF\MANIFEST.MF (Le chemin d’accès spécifié est introuvable) 
    at java.io.FileOutputStream.open(Native Method) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:403) 
    at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:138) 
    at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:721) 
    at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:844) 
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:334) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:379) 
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:136) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:932) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:379) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:324) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:620) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431) 
12 févr. 2012 15:35:25 org.apache.catalina.core.StandardContext postWorkDirectory 
ATTENTION: Failed to create work directory [C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\readSystemFile] for context [/readSystemFile] 
12 févr. 2012 15:35:25 org.apache.catalina.loader.WebappLoader startInternal 
GRAVE: LifecycleException 
java.io.IOException: Failed to create destination directory to copy resources 
    at org.apache.catalina.loader.WebappLoader.setRepositories(WebappLoader.java:888) 
    at org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:603) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5079) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:932) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470) 
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) 
    at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:379) 
    at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:324) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:620) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431) 
12 févr. 2012 15:35:25 org.apache.catalina.core.ContainerBase addChildInternal 
GRAVE: ContainerBase.addChild: start: 

答えて

0

私は例外が文句を言うものだから、次のMANIFESTファイルを追加することを推奨したいです。

0

あなたはwarファイルをパッケージ化するために何を使用していますか?あなたが使用しているプログラムが、必要なマニフェストファイル(およびおそらく他のファイルも)を作成していないようです。 eclipseのエクスポート機能を使用するかantを使用してみてください。

+0

私はEclipseエクスポートを使用しましたが、私はすでにマニフェストが戦争に存在することを確認しました。しかしそれは内容です:マニフェスト - バージョン:1.0 クラスパス: – ndongo

0

私は同様の問題がありました。ほとんどの場合、権限の設定が間違っている可能性があります。

関連する問題