Java 在netbeans项目中放置文件的位置

Java 在netbeans项目中放置文件的位置,java,netbeans-7,Java,Netbeans 7,我正在netbeans中开发一个使用JSF的web应用程序。在一个托管bean中,我必须读取一个XML文件,但我不确定将该文件放在哪里。我已经试着把文件放在项目的根目录中,也放在src文件夹中,但是我仍然得到一个FileNotFoundException。 请帮忙 以下是异常的堆栈跟踪 Sep 29, 2012 3:59:19 PM me.uni.sushilkumar.turboblogger.PopulatePosts init SEVERE: null java.io.FileNotFou

我正在
netbeans
中开发一个使用JSF的web应用程序。在一个托管bean中,我必须读取一个XML文件,但我不确定将该文件放在哪里。我已经试着把文件放在项目的
根目录中,也放在
src
文件夹中,但是我仍然得到一个FileNotFoundException。 请帮忙

以下是异常的堆栈跟踪

Sep 29, 2012 3:59:19 PM me.uni.sushilkumar.turboblogger.PopulatePosts init
SEVERE: null
java.io.FileNotFoundException: posts.xml (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at me.uni.sushilkumar.turboblogger.PopulatePosts.init(PopulatePosts.java:40)
at me.uni.sushilkumar.turboblogger.PopulatePosts.<init>(PopulatePosts.java:34)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:102)
at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:147)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at com.sun.faces.facelets.component.UIRepeat.getValue(UIRepeat.java:273)
at com.sun.faces.facelets.component.UIRepeat.getDataModel(UIRepeat.java:249)
at com.sun.faces.facelets.component.UIRepeat.setIndex(UIRepeat.java:443)
at com.sun.faces.facelets.component.UIRepeat.process(UIRepeat.java:482)
at com.sun.faces.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:974)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Sep 29, 2012 3:59:19 PM javax.faces.component.UIViewRoot$ViewMap put
WARNING: Setting non-serializable attribute value into ViewMap: (key: posts, value     class: me.uni.sushilkumar.turboblogger.PopulatePosts)
2012年9月29日下午3:59:19 me.uni.sushilkumar.turboblogger.PopulatePosts init
严重:空
java.io.FileNotFoundException:posts.xml(没有这样的文件或目录)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:138)
at me.uni.sushilkumar.turboblogger.PopulatePosts.init(PopulatePosts.java:40)
atme.uni.sushilkumar.turboblogger.PopulatePosts.(PopulatePosts.java:34)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:525)
位于java.lang.Class.newInstance0(Class.java:372)
位于java.lang.Class.newInstance(Class.java:325)
位于com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
在com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:102)上
在com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)上
在com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)上
位于com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
位于com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
在com.sun.faces.el.DemuxCompositeELResolver.\u getValue(DemuxCompositeELResolver.java:176)
在com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)上
位于org.apache.el.parser.astiIdentifier.getValue(astiIdentifier.java:72)
位于org.apache.el.parser.AstValue.getValue(AstValue.java:147)
在org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
位于com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
位于com.sun.faces.facelets.component.UIRepeat.getValue(UIRepeat.java:273)
位于com.sun.faces.facelets.component.UIRepeat.getDataModel(UIRepeat.java:249)
位于com.sun.faces.facelets.component.UIRepeat.setIndex(UIRepeat.java:443)
位于com.sun.faces.facelets.component.UIRepeat.process(UIRepeat.java:482)
位于com.sun.faces.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:974)
位于javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
位于javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
位于javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
在com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)上
位于com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
位于com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
位于com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
在com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)上
位于javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
运行(Thread.java:722)
2012年9月29日下午3:59:19 javax.faces.component.UIViewRoot$ViewMap put
警告:在ViewMap中设置不可序列化的属性值:(键:posts,值类:me.uni.sushilkumar.turboblogger.PopulatePosts)

如果它是一个静态文件,包含在部署的war文件中,只需将其放在src目录中即可。Netbeans将它与.class文件一起复制到目标位置。使用加载文件

SomeClassOfTheWebApp.class.getResourceAsStream("/theXmlFile.xml");

webapp的类加载器将为您加载它。

显示您的代码、异常的堆栈跟踪,并告诉我们此文件是什么。它是webapp的一部分、包含在可部署war文件中的某个静态文件,还是外部文件?无论您在何处添加其他XML文件,如构建文件、faces-config.XML、web.XML……)@chaitanya10仍然得到异常:(@JBNizet添加了堆栈跟踪。是的,它是一个静态文件,我需要在我的一个托管bean中读取它。