Tomcat иногда задыхается от моего нового военного файла - PullRequest
0 голосов
/ 01 октября 2009

Мой процесс сборки собирает и копирует файл .war в $ TOMCAT_HOME / webapps. 75% и более раз это нормально работает. Но время от времени в файле catalina.log будет отображаться следующее, а затем все приложения, развернутые на Tomcat, полностью зависнут:

Oct 1, 2009 3:33:30 PM org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/lucidity]
Oct 1, 2009 3:33:30 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive lucidity.war
Oct 1, 2009 3:33:32 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/Users/ptomblin/apache-tomcat-6.0.20/webapps/lucidity/WEB-INF/lib/servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Oct 1, 2009 3:33:32 PM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.  Could not load java.net.BindException.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399)
    at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:155)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2652)
    at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1345)
    at com.mysql.jdbc.Connection.realClose(Connection.java:4784)
    at com.mysql.jdbc.Connection.cleanup(Connection.java:2040)
    at com.mysql.jdbc.Connection.finalize(Connection.java:3296)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.

Есть ли другой способ загрузить этот WAR-файл в Tomcat?

Ответы [ 2 ]

1 голос
/ 29 января 2010

У меня есть эта проблема. основная причина, по которой существует объект соединения для JDBC (я полагаю, что он статический) ... поэтому просто закройте его и присвойте ему значение null в ovverrided function finilizer () следующим образом (con относится к соединению Obj.):

@Override

protected void finalize() throws Throwable {

        super.finalize();

        try{
             con.close();
             }catch(Exception r){
                  r.getMessage();
             }
             con=null;
    }

Это решает мою проблему, но с другой стороны, я не рекомендую использовать соединение как статическое никогда .. M.

1 голос
/ 01 ноября 2009

Что ж, я больше не использую этот конкретный сервер Tomcat, и когда я загружаю файл WAR в свой собственный tomcat, он иногда выдает это исключение, но затем он пытается снова и в конечном итоге загружает его. Я понятия не имею, почему другой Tomcat был таким, каким он был, но хостинговая компания, очевидно, внесла в него некоторые изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...