在布署的润乾web发布包启动时,总是报个 InputStream cannot be null 异常,但这个异常不影响报表的运行,即便如此,
每次启动时看着一堆stacktrace还是感觉很不舒服。
Stack Trace 详情:
Report System initing......
[2011-11-30 12:00:23] runqianReportLogger : [INFO ] - Set The Max Cells Num to 100000 , old value is -1
[2011-11-30 12:00:23] runqianReportLogger : [DEBUG] - : InputStream cannot be null
错误来源:InputStream cannot be null
: InputStream cannot be null
错误来源:InputStream cannot be null
at com.runqian.report4.semantics.SemanticsManager.readXMLStream(Unknown Source:174)
at com.runqian.report4.view.ReportServlet.loadConfig(Unknown Source:449)
at com.runqian.report4.view.ReportServlet.loadConfig(Unknown Source:99)
at com.runqian.report4.view.ReportServlet.init(Unknown Source:87)
at com.runqian.util.webutil.SetContextServlet.init(SetContextServlet.java:23)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.IllegalArgumentException: InputStream cannot be null
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:94)
at com.runqian.report4.semantics.SemanticsManager.readXMLStream(Unknown Source:171)
... 31 more
Report System initialized......
[Wed Nov 30 12:00:24 CST 2011] : [INFO] - DM System initing......
[Wed Nov 30 12:00:24 CST 2011] : [INFO] - program license error:
授权文件错误:
[Wed Nov 30 12:00:24 CST 2011] : [DEBUG] - SOLAP RESERVED 0 is 0
[Wed Nov 30 12:00:24 CST 2011] : [DEBUG] - SOLAP RESERVED 1 is 0
[Wed Nov 30 12:00:24 CST 2011] : [INFO] - DM System initialized......
错误很明显,缺少语义层文件
错误来源:InputStream cannot be null
at com.runqian.report4.semantics.SemanticsManager.readXMLStream(Unknown Source:174)
找到了错误,解决方法就很简单了,指定正确的语义层文件即可。
打开 WEB-INF 下面的 reportConfig.xml 查找以下XML片断:
在发布报表时,如果没有选择主义层文件,润乾会自动为你生成一个 /WEB-INF/demo.xml 的默认值,而这个文件根本不存在,
所以才会报 InputStream cannot be null 的异常。
如果应用中有用到语义层文件, 重新设置正确的文件路径,
如果没有用到,将此段代码注释或删除即可。
<config>
<name>semanticsFile</name>
<value>/WEB-INF/demo.xml</value>
</config>
重启应用,异常排除,控制台干净了。