Java 使用tomcat面临部署问题
我想测试一个可以读取文件系统中特定目录的小应用程序。 当将eclipse与tomcat一起使用时,它工作得很好,但是当我试图在我安装的tomcat.7的wepApps目录中部署war时,它不幸崩溃了,请参见下面的异常。我还在catalina.policy中为我的应用程序添加了权限,但没有任何更改 许可:Java 使用tomcat面临部署问题,java,tomcat,Java,Tomcat,我想测试一个可以读取文件系统中特定目录的小应用程序。 当将eclipse与tomcat一起使用时,它工作得很好,但是当我试图在我安装的tomcat.7的wepApps目录中部署war时,它不幸崩溃了,请参见下面的异常。我还在catalina.policy中为我的应用程序添加了权限,但没有任何更改 许可: //the permission used to grant read/write to test directory for readSystemFile grant codeBase "fi
//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:
我建议接下来添加一个清单文件,因为这是异常所抱怨的。我建议接下来添加一个清单文件,因为这是异常所抱怨的。您使用什么来打包war文件?看起来您正在使用的任何程序都没有创建所需的清单文件,可能也没有创建其他文件。尝试使用eclipse的导出功能或使用ant。您使用什么来打包war文件?看起来您正在使用的任何程序都没有创建所需的清单文件,可能也没有创建其他文件。尝试使用eclipse的导出功能或使用ant。我也有类似的问题。很可能是权限设置错误 我也有类似的问题。很可能是权限设置错误 我也遇到过类似的问题。未部署放置在webapps文件夹中的War文件。事实上,当我从tomcat的管理控制台看到它处于停止状态。 当我试图启动它时,它并没有启动任何上下文,而是抛出catalina生命周期异常,如下所示 失败-无法启动上下文路径/proj xyz处的应用程序 失败-遇到异常org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/proj xyz]] 我的机器是ubuntu,问题是我在没有sudo的情况下启动了tomcat
./startup.sh
or
./catalina.sh start
我认为这是滞后的一些权限,因为tomcat不是从sudo开始的。但后来我意识到并使用了
sudo ./startup.sh
or
sudo ./catalina.sh start
它得到了修复我也遇到了类似的问题。未部署放置在webapps文件夹中的War文件。事实上,当我从tomcat的管理控制台看到它处于停止状态。 当我试图启动它时,它并没有启动任何上下文,而是抛出catalina生命周期异常,如下所示 失败-无法启动上下文路径/proj xyz处的应用程序 失败-遇到异常org.apache.catalina.LifecycleException:未能启动组件[StandardEngine[catalina].StandardHost[localhost].StandardContext[/proj xyz]] 我的机器是ubuntu,问题是我在没有sudo的情况下启动了tomcat
./startup.sh
or
./catalina.sh start
我认为这是滞后的一些权限,因为tomcat不是从sudo开始的。但后来我意识到并使用了
sudo ./startup.sh
or
sudo ./catalina.sh start
它得到了修复我已经使用了Eclipse导出,并且我已经检查了清单是否存在于战争中。但是它的内容是:清单版本:1.0类路径:我已经使用了Eclipse导出,并且我已经检查了清单是否存在于战争中。但它的内容是:清单版本:1.0类路径: