我正在部署在Tomcat服务器上的Web应用程序上工作。在我的本地测试系统上,我使用Eclipse和WST将我的代码部署到服务器。如果堆栈跟踪被抛出,我可以看到每行的源文件和行号 - 正如所料。无法在Java堆栈跟踪中看到java源文件
但是,如果在生产系统上引发异常,源文件以及行号都是未知的。这种情况仅适用于我自己的代码,对于外部库的跟踪中的所有堆栈元素,源文件和行号是已知的。
我编译我的项目如下(使用Ant):
<javac srcdir="${src}" destdir="${build}" fork="true" debug="true" debuglevel="lines, vars, source">
<classpath refid="classpath" />
</javac>
我absoutely不知道问题出在哪里,但它必须是超级简单的解决。
感谢您的帮助!
>>编辑:我的部署一些详细信息:我肯定用这些Ant目标,以创建WAR文件:
<target name="compile" depends="update-dependencies">
<mkdir dir="${build}" />
<javac srcdir="${src}" destdir="${build}" fork="true" debug="true" debuglevel="lines, vars, source">
<classpath refid="classpath" />
</javac>
<javac srcdir="${tests}" destdir="${build}" fork="true" debug="true" debuglevel="lines, vars, source">
<classpath refid="classpath" />
</javac>
<!-- Copy non-java files -->
<copydir dest="${build}" src="${src}">
<exclude name="**/*.java"/>
</copydir>
<copydir dest="${build}" src="${tests}">
<exclude name="**/*.java"/>
</copydir>
</target>
<target name="war" depends="compile">
<war destfile="${war.file}" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent" />
<lib dir="${lib}" />
<classes dir="${build}" />
</war>
</target>
在本地系统上我使用Eclipse来为我做部署,所以我不使用我的任何蚂蚁目标。我需要部署中的.java文件吗?
>> EDIT2:实例堆栈跟踪(唯一的例外本身是没有问题的!):
javax.naming.NamingException: Name is not valid
at org.apache.naming.NamingContext.unbind(NamingContext.java:248)
at org.apache.naming.NamingContext.unbind(NamingContext.java:282)
at org.apache.naming.SelectorContext.unbind(SelectorContext.java:256)
at javax.naming.InitialContext.unbind(InitialContext.java:416)
at org.hibernate.impl.SessionFactoryObjectFactory.removeInstance(SessionFactoryObjectFactory.java:139)
at org.hibernate.impl.SessionFactoryImpl.close(SessionFactoryImpl.java:894)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.destroy(AbstractSessionFactoryBean.java:251)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.destroy(LocalSessionFactoryBean.java:899)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:184)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:487)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:463)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:431)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1048)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1022)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:970)
HERE: at my.pkg.ContextLoaderListener.closeWebApplicationContext(Unknown Source)
HERE: at my.pkg.ContextLoaderListener.contextDestroyed(Unknown Source)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4174)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4778)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:924)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1319)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1290)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:323)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1086)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:450)
at org.apache.catalina.core.StandardService.stop(StandardService.java:587)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:648)
at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:692)
你可以发布它打破的行和它显示的相应日志跟踪吗? – Bhushan 2011-06-15 22:39:29
您是否在本地部署了与部署到生产环境相同的战争文件,或者您是否正在重建它?我有相同的蚂蚁脚本,它的构建没有问题。 – 2011-06-15 22:42:31
您是否验证过部署到生产服务器上的代码是否使用此ant脚本构建?很多RE人员都试图避免将调试数据放入他们构建的罐子中。 – vkraemer 2011-06-15 22:47:26