Java 爪哇及;Tomcat:启动带有hibernate的模糊应用程序时发生严重错误
这有点难以解释 我正在使用Tomcat6.0测试部署WAR文件。我正在使用proGuard来混淆WAR文件 要使用proGuard,通常在WEB-INF/类中的所有com.*、org.*等都必须打包到WEB-INF/lib中的单个.jar中 到目前为止还不错 当我部署时,问题就来了。该应用程序使用Hibernate和Hibernate侦听器。此侦听器无法加载。由此我推断,已经找到了包含完整类集的.jar,并且至少已经开始使用它了。然而,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侦听器的失败结束了应用程序的部署,并且什么
[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/
文件夹中并重新编译。不管怎样,它还是奏效了
我对战争中的其他模糊因素仍然有很大的疑问,但这些都是针对其他问题的
-SlistenerStart并不意味着找不到侦听器。相反,这意味着侦听器在加载时引发异常。您的日志没有显示任何org.hibernate日志?您可以设置日志以显示所有内容吗?我怀疑有一个错误被忽略了。