Tomcat6 在重新启动后(有时)无法意外地部署相同的 Web 应用程序



我通过重新启动我的 Tomcat6 在日志中收到一条奇怪的错误消息 tron 作业,这会阻止我的 Web 应用程序工作。

背景:我使用Raspbian OS,Java 6,Tomcat 6,JSF API 2.0.1(jsf-impl2.0.1.jar,jsf-api2.0.1.jar(, Ajax(通过JSF 2.0.1中嵌入的Ajax功能(, 为了开发应用程序,我将Windows与Eclipse Indigo,Java 6,JSF2.0,Tomcat 7一起使用。jsf-impl2.0.1.jar 和 jsf-api2.0.1.jar 放在/usr/share/tomcat6/lib文件夹下。
因此,Web 应用程序在 /var/lib/tomcat6/webapps 下像 ROOT.war 一样部署,所以我在我的小网络服务器(树莓派(。

所以问题:通常我的网络应用程序工作正常 - catalina日志中没有任何错误消息,没有任何其他错误,它可以工作很多天。 我定义了一个 cron 作业,它每天执行一个"一个突击队"脚本重新启动我的雄猫6:sudo service tomcat6 restart。但有时,我的 tomcat6 的重新启动无法部署我的 Web 应用战争,并且每次都无法启动我的 Web 应用,但每次都出现不同的错误消息,但每次来自相同的原因:SAX解析器错误,它们每次都不同。因此,当我手动进行第二次重新启动时,从 cron 作业首次重新启动后立即 - Tomcat成功,日志和我的 Web 应用程序没有问题开始正常工作 - 但问题是,我无法每次第二次或第三次重新启动我的雄猫,因为我不能每次都被我的客户。
那么,人们,知道我的案子吗?请帮忙!我已经研究了 5 天,但情况并非如此。
如果这有帮助,当我使用较旧的 jsf-impl 和 jsf-api 时,它工作正常,但在这种情况下,我不能使用 Ajax 功能。
这是我网站的标题.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>a7</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>  

这是我的脸.xml的标题:

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"  
    version="2.0">  

这是主要错误,它相同,但原因不同:

09-Dec-2014 02:00:49 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of clas
s com.sun.faces.config.ConfigureListener
java.lang.ExceptionInInitializerError
        at com.sun.faces.config.ConfigManager$ParseTask.<init>(ConfigManager.jav
a:810)
        at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.j
ava:650)
        at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:306)
        at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureLi
stener.java:219)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContex
t.java:4206)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
705)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:799)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
9)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778
        .........  

例如,SAX 解析器错误的 3 个不同原因,有不同的原因:

......
Caused by: com.sun.faces.config.ConfigurationException: org.xml.sax.SAXParseExce
ption; lineNumber: 172; columnNumber: 33; src-resolve: Cannot resolve the name '
xml:lang' to a(n) 'attribute declaration' component.
        at com.sun.faces.config.DbfFactory.initStatics(DbfFactory.java:269)
        at com.sun.faces.config.DbfFactory.<clinit>(DbfFactory.java:186)  
.......
Caused by: com.sun.faces.config.ConfigurationException: org.xml.sax.SAXParseExce
ption; lineNumber: 56; columnNumber: 7; The element type "xtion" must be termina
ted by the matching end-tag "</xtion>".
        at com.sun.faces.config.DbfFactory.initStatics(DbfFactory.java:269)
        at com.sun.faces.config.DbfFactory.<clinit>(DbfFactory.java:186)  
.......
Caused by: com.sun.faces.config.ConfigurationException: org.xml.sax.SAXParseExce
ption; lineNumber: 389; columnNumber: 33; Open quote is expected for attribute "
{1}" associated with an  element type  "id".
        at com.sun.faces.config.DbfFactory.initStatics(DbfFactory.java:269)
        at com.sun.faces.config.DbfFactory.<clinit>(DbfFactory.java:186)  

提前感谢您的帮助!

经过几个月的研究和程序化尝试,我找到了解决方案。是的版本兼容性问题与jspcss语法错误相结合。对于 Tomcat6,JSF 1.2,我们必须使用较低的RichFaces Ajax的版本。但不仅如此。看看你的jpscss。Ajax 库每次都必须解析它雄猫的重启。一旦在雄猫的日志中语法 SAX 解析错误,例如:

Caused by: org.xml.sax.SAXParseException; lineNumber: 389; columnNumber: 33; Ope
n quote is expected for attribute "{1}" associated with an  element type  "id".

每次错误消息不同时,就像我的情况一样,意味着,您的.jsp和.css中存在解析错误。我的情况的解决方案是在版本之间进行正确的组合Tomcat6,JSF1.2和RichFaces Ajax,并清理我的.jsp和.css语法错误。注意,如果没有 Ajax,JSF 库就没有问题随着旧源代码的解析。

最新更新