java - Tomcat9 应用程序状态为 false 并在尝试访问服务器路径时抛出 404
问题描述
我正在从 eclipse 启动 tomcat 服务器,并且我已手动将 .war 文件复制到 tomcat C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps 文件夹中。
但是当我从 tomcat 应用程序管理器检查应用程序的运行状态时,我看到了该应用程序的运行状态 - 错误:http://localhost:8081/manager/html
这是我从 eclipse 启动服务器时得到的日志:
Jun 15, 2020 2:15:34 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive [C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\nn.war]
Jun 15, 2020 2:15:34 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive [C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\nn.war]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1848)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:773)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.__invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45009)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45012)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@36061cf3]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139)
at org.apache.catalina.webresources.StandardRoot.initInternal(StandardRoot.java:691)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
... 39 more
Caused by: java.lang.IllegalArgumentException: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
... 46 more
Caused by: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:236)
at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)
... 47 more
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.__newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45009)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45012)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.apache.tomcat.util.compat.Jre9Compat.jarFileNewInstance(Jre9Compat.java:233)
... 49 more
Caused by: java.nio.file.NoSuchFileException: \usr\share\java\jersey-server.jar
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:53)
at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38)
at java.base/sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:198)
at java.base/java.nio.file.Files.readAttributes(Files.java:1763)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1225)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:727)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:844)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:348)
... 56 more
Jun 15, 2020 2:15:34 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deployment of web application archive [C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\nn.war] has finished in [39] ms
Jun 15, 2020 2:15:34 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory [C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\docs]
Jun 15, 2020 2:15:34 PM org.apache.catalina.startup.HostConfig deployDirectory
环境:Java 11
任何帮助,将不胜感激。
解决方案
由于war文件是使用ant构建过程生成的,因此依赖于tomcat在特定位置期望的lib文件。在该位置创建一个文件夹解决了这个问题。
这是构建文件的片段:
<target name="war" depends="clean,compile">
<war destfile="dist/nn.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"/>
<!--
<lib dir="WebContent/WEB-INF/lib"/>
-->
<classes dir="build/classes"/>
<manifest>
<attribute name="Class-Path" value="\
/usr/share/java/aopalliance-repackaged-2.6.1.jar \
/usr/share/java/hk2-api-2.6.1.jar \
/usr/share/java/jersey-media-jaxb.jar \
"/>
</manifest>
</war>
推荐阅读
- android - 通知的警报管理器无法正常工作
- ruby-on-rails - Ruby on Rails 上的数据加载停止
- c# - 用户控件的 WPF MVVM 动态绑定并根据所选设计显示记录
- vba - 将表格从 Excel 复制到 PowerPoint 时找不到形状 - VBA 在完成粘贴功能之前运行到下一行
- wordpress - 如何使用 OR 条件和主要 where 子句条件设置 meta_query
- mysql - MySQL 使用 WHERE 连接两个完全相同的表
- javascript - 将预定义函数导入 ES6 模块
- javascript - 我的自动完成出现故障以显示 jquery 验证错误?
- sql - DB2 INSERT INTO ... 选择锁
- android - 更改数据后更新recyclerView