我试图在webapp中加载一个文件,FileNotFound当我使用时我得到了一个例外FileInputStream.但是,使用相同的路径,我能够在我这样做时加载文件getResourceAsStream().这两种方法之间有什么区别,为什么一种方法有效而另一方方法无效?
我注意到在Maven工件的JAR中,project.version属性包含在两个文件中:
META-INF/maven/${groupId}/${artifactId}/pom.properties
META-INF/maven/${groupId}/${artifactId}/pom.xml
是否有推荐的方法在运行时读取此版本?
我在这里读到,无论如何都不应该将文件保存在服务器中,因为它不是可移植的,事务性的并且需要外部参数.但是,鉴于我需要一个针对tomcat(7)的tmp解决方案,并且我对服务器机器有(相对)控制,我想知道:
保存文件的最佳位置是什么?我应该保存/WEB-INF/uploads(建议不要在这里)或某个地方$CATALINA_BASE(见这里)或......?JavaEE 6教程从用户获取路径(:wtf :).注意:该文件不应以任何方式下载.
我应该建立一个配置参数详见这里?我很欣赏一些代码(我宁愿给它一个相对路径 - 所以它至少是Tomcat可移植的) - Part.write()看起来很有希望 - 但显然需要一个绝对的路径
我对这种方法与数据库/ JCR存储库的缺点的阐述感兴趣
不幸的是 ,@ BalusC 的FileServlet专注于下载文件,而他在上传文件时的答案会跳过保存文件的位置.
容易转换为使用DB或JCR实现(如长耳兔)的解决方案将是优选的.
我有一个包含2个包的项目:
tkorg.idrs.core.searchenginestkorg.idrs.core.searchengines在包(2)中我有一个文本文件ListStopWords.txt,在包(1)中我有一个类FileLoadder.这是代码FileLoader:
File file = new File("properties\\files\\ListStopWords.txt");
但有这个错误:
The system cannot find the path specified
你能解决一下吗?谢谢.
我的C:驱动器中有一个文件夹,因为C:\app_config\java_app
此文件夹包含一些特定于语言环境的属性文件.
我有一个java类(PrjPropertilesLocator)在Web App启动时基于默认语言环境加载属性文件.我的Web应用程序在tomcat中运行.问题是我应该如何C:\app_config\java_app在tomcat类路径中设置这个目录,以便它可以在PrjPropertilesLocator类中的ResourceBundle中使用.有没有办法我可以专门为需要它的单个Web应用程序设置此文件夹.我不想将属性文件放在WEB-INF/classes文件夹中.
在weblogic上运行正常.我在其中一个启动脚本中设置了weblogic类路径中的目录,它工作正常.但在Tomcat我试图把它startup.bat还在setclasspath.bat,但没能成功地这样做.
在以下代码段中:
ServletContext context = request.getServletContext();
String path = context.getRealPath("/");
是什么/在方法getRealPath()代表什么呢?我应该什么时候使用它?
我在Java Web应用程序中有以下结构:
TheProject
  -- [Web Pages]
  -- -- [WEB-INF]
  -- -- -- abc.txt
  -- -- index.jsp
  -- [Source Packages]
  -- -- [wservices]
  -- -- -- WS.java
在WS.java,我在Web方法中使用以下代码:
InputStream fstream = this.getClass().getResourceAsStream("abc.txt");
但它始终返回null.我需要从该文件中读取,并且我读到如果您将文件放入WEB-INF,您可以使用它来访问它们getResourceAsStream,但该方法总是返回一个null.
我可能做错了什么想法?
顺便说一句,奇怪的是这是有效的,但是在我Clean and Build对项目执行了一次后,它突然停止了工作:/
我正在预先打包一个JSP web-app,它依赖于web.xml中的一些文件路径设置.这些设置在打包时是未知的,因为它们引用了客户在部署整个应用程序时设置的路径(其中web-app是管理界面).
似乎在我的安装程序脚本中避免令牌和文件修改的最简单方法是向用户询问安装位置,将此位置设置为环境变量(例如JAVA_HOME),并让web.xml始终引用该变量.
有没有办法从web.xml中引用环境变量值?Google搜索引出了来自ejb xml文件的SETTING环境变量的J2EE方法.这不是我想要的.
getRealPath()返回本地系统中的实际路径,但在与.war文件一起部署时返回null .
<%@ page import="java.io.*" %>
<%@ page contentType="text/html;charset=ISO-8859-1" %> 
<%
int iLf = 10;
char cLf = (char)iLf;
String a= application.getResource("/");
//String myfile = application.getRealPath("/")+ "generate.xml";
//String myfile = request.getContextPath()+"generate.xml";
//String myfile = request.getRealPath("/")+"generate.xml";
out.println(myfile);    
File outputFile = new File(myfile);
outputFile.createNewFile();
FileWriter outfile = new FileWriter(outputFile);
outfile.write(" <?xml version='1.0' encoding='UTF-8'?> "+cLf);
outfile.write(" <playlist version='1' xmlns = 'http://xspf.org/ns/0/' > " +cLf);
outfile.write(" <title>My Band Rocks Your Socks</title> "+cLf); 
outfile.write("<trackList>"+cLf); 
%>
 <%! String[] sports; %>
 <%
    sports = …我编写了一个Java servlet,我想在不同服务器上的许多Tomcat实例上安装它.servlet使用一些静态文件,这些文件在WEB-INF下用war文件打包.这是典型安装中的目录结构:
- tomcat
-- webapps
--- myapp
---- index.html
---- WEB-INF
----- web.xml
----- classes
------ src
------- .....
----- MY_STATIC_FOLDER
------ file1
------ file2
------ file3
我如何知道MY_STATIC_FOLDER的绝对路径,以便我可以读取静态文件?
我不能依赖"当前文件夹"(我在新文件(".")中得到的)因为它取决于Tomcat服务器的启动位置,这在每个安装中都是不同的!
resources servlets relative-path working-directory absolute-path
java ×7
servlets ×3
tomcat ×2
classpath ×1
file ×1
file-io ×1
file-upload ×1
inputstream ×1
java-ee ×1
jboss ×1
jsp ×1
maven-2 ×1
realpath ×1
resources ×1
servlet-3.0 ×1
web-services ×1
web.xml ×1
xml ×1