在PC重新启动后,Eclipse webapp项目在Tomcat上无法正常启动 [英] Eclipse webapp project does not start properly on Tomcat anymore after a PC restart

查看:174
本文介绍了在PC重新启动后,Eclipse webapp项目在Tomcat上无法正常启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我关闭我的电脑时,我已经配置了一个网络应用程序并运行。然后当我开始这个奇怪的事情开始发生了:我使用eclipse靛蓝ee。它给了我一个班,没有发现一个类在正确的地方的异常,我没有修改任何东西,我想在修改之前重新运行该应用程序。在另一个项目中,它不能识别String类型,所以我重新加载了该项目,然后它遇到问题的包,然后删除并替换了包,它的工作。那个项目很好但我正在努力的另一个人说,没有找到一个班。我把它放在另一个包装中,然后把它放回原处。错误消失了但是出现一个新的,这是我的控制台输出:

  2012年6月8日1:57:07 org.apache。 catalina.core.AprLifecycleListener init 
INFO:在java.library.path中找不到基于APR的Apache Tomcat Native库,它允许生产环境中的最佳性能:C:\Program Files\Java\jre7\\ \\ bin; C:\Windows\Sun\Java\bin; C:\Windows\system32; C:\Windows; c:/ Program Files / Java / jdk1.7.0_04 / bin / .. / jre / bin / server; c:/ Program Files / Java / jdk1.7.0_04 / bin /../ jre / bin; c:/ Program Files / Java / jdk1.7.0_04 / bin /../ jre / lib /amd64;D:\OracleDB11g\app\oracle\product\11.2.0\server\bin;c:\Program Files\Java\jdk1.7.0_04\bin; C: \Windows\system32; C:\Windows; C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\; D:\Programming_Tools\\ \\apache-行家-3.0.4\bin\; D:\MySqlServer\\仓; C:\Program文件(x86)\QuickTime\QTSystem\; D:\Programming_Tools\eclipse EE ;;。
Jun 08,2012 1:57:07 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
警告:[SetPropertiesRule] {服务器/服务/引擎/主机/上下文}设置属性的源'到'org.eclipse.jst.jee.server:TestTomcat'没有找到匹配的属性。
Jun 08,2012 1:57:07 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
警告:[SetPropertiesRule] {服务器/服务/引擎/主机/上下文}设置属性的源'到'org.eclipse.jst.jee.server:OnTheRun'找不到匹配的属性。
2012年6月8日1:57:08 org.apache.coyote.AbstractProtocol init
INFO:初始化ProtocolHandler [http-bio-80]
2012年6月8日1:57 :08 AM org.apache.coyote.AbstractProtocol init
INFO:初始化ProtocolHandler [http-bio-8443]
2012年6月8日1:57:08 org.apache.coyote.AbstractProtocol init
INFO:初始化ProtocolHandler [ajp-bio-8009]
2012年6月8日1:57:08 org.apache.catalina.startup.Catalina加载
INFO:初始化处理1791 ms
2012年6月8日1:57:08 AM org.apache.catalina.core.StandardService startInternal
信息:启动服务Catalina
2012年6月8日上午1:57:08 .apache.catalina.core.StandardEngine startInternal
INFO:启动Servlet引擎:Apache Tomcat / 7.0.27
2012年6月8日1:57:12 org.apache.catalina.core.ApplicationContext log
SEVERE:StandardWrapper.Throwable
java.lang.IllegalStateException:没有为此应用程序配置工厂。如果面部初始化根本不起作用,则会发生这种情况 - 确保正确包含基本面部应用程序所需的所有配置设置,并包括所有必需的库。还要检查您的Web应用程序和容器的日志输出是否有任何异常!
如果你这样做,什么也找不到,这个错误可能是因为你使用一些特殊的web容器,它不支持通过TLD文件注册上下文监听器,并且在你的web中没有设置上下文监听器。 XML。
一个典型的配置看起来像这样;
< listener>
< listener-class> org.apache.myfaces.webapp.StartupServletContextListener< / listener-class>
< / listener>

在javax.faces.FactoryFinder.getFactory(FactoryFinder.java:172)
在javax.faces.webapp.FacesServlet.init(FacesServlet.java:112)
在org .apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
在org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
在org.apache.catalina .core.StandardWrapper.load(StandardWrapper.java:1080)
在org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
在org.apache.catalina.core.StandardContext .startInternal(StandardContext.java:5302)
在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
在org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1566)
在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1556)
在java.util.concurrent.FutureTask $ Sync.innerRun(未知来源)
在java.util.concurrent.FutureTask.run(未知来源)
在java.util.concurrent.ThreadPo olExecutor.runWorker(未知源)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)
在java.lang.Thread.run(未知来源)

Jun 08,2012 1:57:12 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE:Servlet / OnTheRun抛出load()异常
java.lang.IllegalStateException:没有为此配置的工厂应用。如果面部初始化根本不起作用,则会发生这种情况 - 确保正确包含基本面部应用程序所需的所有配置设置,并包括所有必需的库。还要检查您的Web应用程序和容器的日志输出是否有任何异常!

如果你没有这样做,什么也找不到,这个错误可能是因为你使用一些特殊的web容器,它不支持通过TLD文件注册上下文监听器,并且没有设置上下文监听器在你的web.xml中。


一个典型的配置看起来像这样; <听者GT;
< listener-class> org.apache.myfaces.webapp.StartupServletContextListener< / listener-class>
< / listener>

在javax.faces.FactoryFinder.getFactory(FactoryFinder.java:172)
在javax.faces.webapp.FacesServlet.init(FacesServlet.java:112)
在org .apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
在org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
在org.apache.catalina .core.StandardWrapper.load(StandardWrapper.java:1080)
在org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
在org.apache.catalina.core.StandardContext .startInternal(StandardContext.java:5302)
在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
在org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1566)
在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1556)
在java.util.concurrent.FutureTask $ Sync.innerRun(未知来源)
在java.util.concurrent.FutureTask.run(未知来源)
在java.util.concurrent.ThreadPo olExecutor.runWorker(未知源)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)
在java.lang.Thread.run(未知来源)

Jun 08,2012 1:57:12 AM org.apache.coyote.AbstractProtocol start
INFO:启动ProtocolHandler [http-bio-80]
2012年6月8日1:57:12 AM org.apache.coyote.AbstractProtocol start
INFO:启动ProtocolHandler [http-bio-8443]
2012年6月8日1:57:12 org.apache.coyote.AbstractProtocol start
INFO:启动ProtocolHandler [ajp-bio-8009]
2012年6月8日1:57:12 AM org.apache.catalina.startup.Catalina start
INFO:服务器启动时间为3540 ms


解决方案

显然环境很脏。我建议清理并重建所有的。


  1. 从Tomcat中删除项目(右键单击Tomcat,添加/删除项目,删除项目)

  2. 关闭Eclipse中的项目(rightclick project,关闭

  3. 清理Tomcat(右键单击Tomcat,

  4. 在Eclipse中重新打开项目(右键菜单,打开

  5. 清洁项目在Eclipse(项目>清洁...>清除下面的选定项目,选择项目)

  6. 将项目添加到Tomcat(右键单击Tomcat,添加/删除项目,添加项目)

  7. 启动Tomcat(右键单击Tomcat,开始

不可能确定这个问题的真正原因,有太多可能的因素。例如,工作空间没有正确关闭,或者Tomcat没有正确关闭,或者同时执行了太多的事情,导致Eclipse等的后台任务引起竞争条件。这与Eclipse + Tomcat组合没有明确的关联。这也是我现在也遇到过JBoss AS和Glassfish服务器的经验。


I had a web app configured and running when I shut down my PC. Then when I started it strange things started to happen: I use eclipse indigo ee. It gave me a class not found exception for a class which was in the right place, I did not modify anything, I wanted to rerun the app before modifying it. In another project it did not recognize the type String, so I reloaded the project and then it had problems with the package, then removed and replaced the package, it worked. That project is good. But the other one I was working on stated that a class was not found. I placed it in another package and then put it back to its place. The error gone away. But a new one appeared, here is my console output:

 Jun 08, 2012 1:57:07 AM org.apache.catalina.core.AprLifecycleListener init
 INFO: The APR based Apache Tomcat Native library which allows optimal performance in  production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;c:/Program Files/Java/jdk1.7.0_04/bin/../jre/bin/server;c:/Program Files/Java/jdk1.7.0_04/bin/../jre/bin;c:/Program Files/Java/jdk1.7.0_04/bin/../jre/lib/amd64;D:\OracleDB11g\app\oracle\product\11.2.0\server\bin;c:\Program Files\Java\jdk1.7.0_04\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;d:\Programming_Tools\apache-maven-3.0.4\bin\;D:\MySqlServer\bin;C:\Program Files (x86)\QuickTime\QTSystem\;D:\Programming_Tools\eclipse EE;;.
 Jun 08, 2012 1:57:07 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
 WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TestTomcat' did not find a matching property.
 Jun 08, 2012 1:57:07 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
 WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:OnTheRun' did not find a matching property.
 Jun 08, 2012 1:57:08 AM org.apache.coyote.AbstractProtocol init
 INFO: Initializing ProtocolHandler ["http-bio-80"]
 Jun 08, 2012 1:57:08 AM org.apache.coyote.AbstractProtocol init
 INFO: Initializing ProtocolHandler ["http-bio-8443"]
 Jun 08, 2012 1:57:08 AM org.apache.coyote.AbstractProtocol init
 INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
 Jun 08, 2012 1:57:08 AM org.apache.catalina.startup.Catalina load
 INFO: Initialization processed in 1791 ms
 Jun 08, 2012 1:57:08 AM org.apache.catalina.core.StandardService startInternal
 INFO: Starting service Catalina
 Jun 08, 2012 1:57:08 AM org.apache.catalina.core.StandardEngine startInternal
 INFO: Starting Servlet Engine: Apache Tomcat/7.0.27
 Jun 08, 2012 1:57:12 AM org.apache.catalina.core.ApplicationContext log
 SEVERE: StandardWrapper.Throwable
 java.lang.IllegalStateException: No Factories configured for this Application. This   happens if the faces-initialization does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions!
 If you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files and a context listener is not setup in your web.xml.
 A typical config looks like this;
 <listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
 </listener>

at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:172)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:112)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

 Jun 08, 2012 1:57:12 AM org.apache.catalina.core.StandardContext loadOnStartup
 SEVERE: Servlet /OnTheRun threw load() exception
  java.lang.IllegalStateException: No Factories configured for this Application. This happens if the faces-initialization does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions!

    If you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files   and a context listener is not setup in your web.xml.


      A typical config looks like this;     <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
   </listener>

at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:172)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:112)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

 Jun 08, 2012 1:57:12 AM org.apache.coyote.AbstractProtocol start
 INFO: Starting ProtocolHandler ["http-bio-80"]
 Jun 08, 2012 1:57:12 AM org.apache.coyote.AbstractProtocol start
 INFO: Starting ProtocolHandler ["http-bio-8443"]
 Jun 08, 2012 1:57:12 AM org.apache.coyote.AbstractProtocol start
 INFO: Starting ProtocolHandler ["ajp-bio-8009"]
 Jun 08, 2012 1:57:12 AM org.apache.catalina.startup.Catalina start
 INFO: Server startup in 3540 ms

解决方案

Apparently the environment is dirty. I'd suggest to clean and rebuild all.

  1. Remove project from Tomcat (rightclick Tomcat, Add/Remove project, remove project)
  2. Close project in Eclipse (rightclick project, Close)
  3. Clean Tomcat (rightclick Tomcat, Clean)
  4. Reopen project in Eclipse (rightclick project, Open)
  5. Clean project in Eclipse (Project > Clean... > Clean selected projects below, select project)
  6. Add project to Tomcat (rightclick Tomcat, Add/Remove projects, add project)
  7. Start Tomcat (rightclick Tomcat, Start).

It isn't possible to pinpoint a real cause for this problem, there are too many possible factors. For example, the workspace wasn't properly shutdown, or Tomcat wasn't properly shutdown, or you did "too many" things simultaneously which caused race conditions in background tasks of Eclipse, etcetera. This is not explicitly related to Eclipse+Tomcat combination. This happens to my experience also so now and then with JBoss AS and Glassfish servers.

这篇关于在PC重新启动后,Eclipse webapp项目在Tomcat上无法正常启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆