tomcatへのwarファイルのデプロイに問題があります。
私は私のWindowsマシンのnetbeansでwebappを書きました。それはすべてうまくいきます。サーバーとして機能しているLinuxコンピューターにアプリケーションを展開します。アプリケーションがビルドされたら、warファイルをプロジェクトディレクトリのdistフォルダーからペンドライブにコピーします。次に、これをLinuxコンピューターのデスクトップにコピーします。
次に、Tomcatを起動し、アプリケーションマネージャーを使用して、デプロイするwarファイルを参照し、[デプロイ]をクリックします。ブラウザの上部に「OK」というメッセージが表示されます。ターミナルウィンドウでTomcatの出力を確認すると、次のエラーが発生します。
4/01/2011 5:09:07 PM org.Apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive Kingdoms.war
4/01/2011 5:09:07 PM org.Apache.catalina.startup.ContextConfig init
SEVERE: Exception fixing docBase for context [/Kingdoms]
Java.util.Zip.ZipException: invalid CEN header (bad signature)
at Java.util.Zip.ZipFile.open(Native Method)
at Java.util.Zip.ZipFile.<init>(ZipFile.Java:114)
at Java.util.jar.JarFile.<init>(JarFile.Java:135)
at Java.util.jar.JarFile.<init>(JarFile.Java:72)
at Sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.Java:72)
at Sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.Java:48)
at Sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.Java:70)
at Sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.Java:104)
at Sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.Java:71)
at org.Apache.catalina.startup.ExpandWar.expand(ExpandWar.Java:111)
at org.Apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.Java:706)
at org.Apache.catalina.startup.ContextConfig.init(ContextConfig.Java:829)
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.setState(LifecycleBase.Java:328)
at org.Apache.catalina.util.LifecycleBase.setState(LifecycleBase.Java:308)
at org.Apache.catalina.util.LifecycleBase.init(LifecycleBase.Java:102)
at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:131)
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:570)
at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:891)
at org.Apache.catalina.startup.HostConfig.deployApps(HostConfig.Java:491)
at org.Apache.catalina.startup.HostConfig.check(HostConfig.Java:1322)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:597)
at org.Apache.Tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.Java:297)
at com.Sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.Java:836)
at com.Sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.Java:761)
at org.Apache.catalina.manager.ManagerServlet.check(ManagerServlet.Java:1467)
at org.Apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.Java:332)
at org.Apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.Java:209)
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:306)
at org.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:244)
at org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:210)
at org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:240)
at org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:161)
at org.Apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.Java:561)
at org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:164)
at org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:108)
at org.Apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.Java:558)
at org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:118)
at org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:379)
at org.Apache.coyote.http11.Http11Processor.process(Http11Processor.Java:243)
at org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:259)
at org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:237)
at org.Apache.Tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.Java:281)
at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
at Java.lang.Thread.run(Thread.Java:662)
4/01/2011 5:09:07 PM org.Apache.catalina.core.StandardContext resourcesStart
SEVERE: Error starting static Resources
Java.lang.IllegalArgumentException: Invalid or unreadable WAR file : invalid CEN header (bad signature)
at org.Apache.naming.resources.WARDirContext.setDocBase(WARDirContext.Java:142)
at org.Apache.catalina.core.StandardContext.resourcesStart(StandardContext.Java:4657)
at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:4815)
at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:140)
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:570)
at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:891)
at org.Apache.catalina.startup.HostConfig.deployApps(HostConfig.Java:491)
at org.Apache.catalina.startup.HostConfig.check(HostConfig.Java:1322)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:597)
at org.Apache.Tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.Java:297)
at com.Sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.Java:836)
at com.Sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.Java:761)
at org.Apache.catalina.manager.ManagerServlet.check(ManagerServlet.Java:1467)
at org.Apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.Java:332)
at org.Apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.Java:209)
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:306)
at org.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:244)
at org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:210)
at org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:240)
at org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:161)
at org.Apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.Java:561)
at org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:164)
at org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:108)
at org.Apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.Java:558)
at org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:118)
at org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:379)
at org.Apache.coyote.http11.Http11Processor.process(Http11Processor.Java:243)
at org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:259)
at org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:237)
at org.Apache.Tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.Java:281)
at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
at Java.lang.Thread.run(Thread.Java:662)
4/01/2011 5:09:07 PM org.Apache.catalina.core.StandardContext startInternal
SEVERE: Error in resourceStart()
4/01/2011 5:09:07 PM org.Apache.catalina.core.StandardContext startInternal
SEVERE: Error getConfigured
4/01/2011 5:09:07 PM org.Apache.catalina.core.StandardContext startInternal
SEVERE: Context [/Kingdoms] startup failed due to previous errors
また、アプリケーションリスト、私のアプリで確認できます。アプリのコマンドで[開始]をクリックしても、画面上部に「失敗-コンテキストパスのアプリケーション/ Kingdomsを開始できませんでした」というメッセージが表示される
何がいけないの?これを修正する方法?
warアーカイブが破損しているか無効です。
ペンドライブなどにコピーする前に、war生成手順が失敗していないこと、およびwarファイルが有効なZipファイルであることを確認してください。
windowsを使用している場合は、ファイル拡張子を.Zipに変更し、winzipやwinrarなどのZipプログラムで開くことでこれを行うことができます。
別のオペレーティングシステムを使用している場合は、おそらく拡張子を変更する必要はありません。
戦争が有効なZipである場合、転送プロセスの結果、つまりペンドライブへの書き込みまたはペンドライブからの破損の結果、破損している可能性があります。
これはファイル保護の問題である可能性があります。chmod755 webapp.warなどを発行して修正できます。
たまたま私のsftpが転送されたファイルに700を平手打ちし、そのエラーを引き起こした。
これは、次のいずれかの理由が原因である可能性があります。
最初に確認することは、ディスクに空き容量があるかどうかです。パーティションが100%いっぱいになると、.WARファイルを抽出できなくなります。
同じエラーが発生しました-warで問題なく、Tomcatを再起動すると問題が解決するので、Tomcatが完全にアップロードされる前にwarの展開を開始するためです
私にも同じ問題があり、戦争を再構築/アップロードしても問題は解決しませんでした。修正するために結局行ったのは、戦争を別の名前でアップロードし、展開に成功したら戦争の名前を変更することでした。これが機能することは少し奇妙ですが、Tomcatを再起動するよりも私にとっては良い解決策でした。
私の場合、それはマニフェストファイルでした。
Class-Path:
空白が後に続きます。
デプロイした.warファイルのファイル権限も確認してください。私にとってそれは原因でした。
また、solr.xmlのエントリが正しくないことが原因である可能性もあります。これは、.warファイルの場所を指している必要があります。