Java 爪哇及;Tomcat:启动带有hibernate的模糊应用程序时发生严重错误

Java 爪哇及;Tomcat:启动带有hibernate的模糊应用程序时发生严重错误,java,hibernate,tomcat,obfuscation,war,Java,Hibernate,Tomcat,Obfuscation,War,这有点难以解释 我正在使用Tomcat6.0测试部署WAR文件。我正在使用proGuard来混淆WAR文件 要使用proGuard,通常在WEB-INF/类中的所有com.*、org.*等都必须打包到WEB-INF/lib中的单个.jar中 到目前为止还不错 当我部署时,问题就来了。该应用程序使用Hibernate和Hibernate侦听器。此侦听器无法加载。由此我推断,已经找到了包含完整类集的.jar,并且至少已经开始使用它了。然而,hibernate侦听器的失败结束了应用程序的部署,并且什么

这有点难以解释

我正在使用Tomcat6.0测试部署WAR文件。我正在使用proGuard来混淆WAR文件

要使用proGuard,通常在WEB-INF/类中的所有com.*、org.*等都必须打包到WEB-INF/lib中的单个.jar中

到目前为止还不错

当我部署时,问题就来了。该应用程序使用Hibernate和Hibernate侦听器。此侦听器无法加载。由此我推断,已经找到了包含完整类集的.jar,并且至少已经开始使用它了。然而,hibernate侦听器的失败结束了应用程序的部署,并且什么都没有出现,甚至索引页也没有出现

我的日志文件(设置为调试)提供:

[2011-11-11 10:19:33] [1381 prunsrv.c] [debug] Commons Daemon procrun log initialized
[2011-11-11 10:19:33] [info] Commons Daemon procrun (1.0.2.0) started
[2011-11-11 10:19:33] [info] Running Service...
[2011-11-11 10:19:33] [1165 prunsrv.c] [debug] Inside ServiceMain...
[2011-11-11 10:19:33] [info] Starting service...
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[0] -Dcatalina.home=C:\tomcat\Tomcat 6.0
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[1] -Dcatalina.base=C:\tomcat\Tomcat 6.0
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[2] -Djava.endorsed.dirs=C:\tomcat\Tomcat 6.0\endorsed
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[3] -Djava.io.tmpdir=C:\tomcat\Tomcat 6.0\temp
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[4] -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[5] -Djava.util.logging.config.file=C:\tomcat\Tomcat 6.0\conf\logging.properties
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[6] -Djava.class.path=C:\tomcat\Tomcat 6.0\bin\bootstrap.jar
[2011-11-11 10:19:33] [447  javajni.c] [debug] Jvm Option[7] vfprintf
[2011-11-11 10:19:33] [629  javajni.c] [debug] argv[0] = start
[2011-11-11 10:19:33] [655  javajni.c] [debug] Java Worker thread started org/apache/catalina/startup/Bootstrap:main
[2011-11-11 10:19:34] [1006 prunsrv.c] [debug] Java started org/apache/catalina/startup/Bootstrap
[2011-11-11 10:19:34] [info] Service started in 1138 ms.
[2011-11-11 10:19:34] [1272 prunsrv.c] [debug] Waiting worker to finish...
然后停下来

卡塔琳娜给了我:

11-Nov-2011 10:21:35 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
有没有人有过让hibernate在可混淆的战争中运行的经验(战争实际上还没有混淆,它只是按照proGuard需要的格式设置的,以便混淆)、一个独立的jar,甚至是如何获得更精确的日志记录

谢谢

更新: 我原以为Tomcat找到了com.*类所在的jar,但现在我不确定了。有人知道如何使用web.xml指向web-INF/lib文件夹中的特定.jar吗

目前,例如:

<listener>
    <listener-class>com.*etc*.HibernateListener</listener-class>
</listener>

<servlet>

    <servlet-name>Application Name</servlet-name>
    <servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>

etc etc...

com.*etc.*HibernateListener
应用程序名称
com.vaadin.terminal.gwt.server.ApplicationServlet
等等等等。。。
但所有这些路径都需要指向.jar文件内部。或者web.xml中的属性需要定义这些路径的位置

谢谢

问题解决了

对于有相同问题的人:我最终使用
WEB-INF/classes
中的logging.properties文件使日志记录工作正常。我把许多论坛帖子中的设置都放在了这里。主要设置是调试以捕获最详细的信息

这个日志让我看到有一个jar丢失了,我以前把它放在
/WEB-INF/lib
文件夹中,但是应用程序没有看到它,所以我不得不把这个类放在
/src/
文件夹中并重新编译。不管怎样,它还是奏效了

我对战争中的其他模糊因素仍然有很大的疑问,但这些都是针对其他问题的


-S

listenerStart并不意味着找不到侦听器。相反,这意味着侦听器在加载时引发异常。您的日志没有显示任何org.hibernate日志?您可以设置日志以显示所有内容吗?我怀疑有一个错误被忽略了。