Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaEE中获取当前web应用程序的名称?_Java_Tomcat_Jakarta Ee - Fatal编程技术网

如何在JavaEE中获取当前web应用程序的名称?

如何在JavaEE中获取当前web应用程序的名称?,java,tomcat,jakarta-ee,Java,Tomcat,Jakarta Ee,如何在JavaEE中获取当前web应用程序的名称 我对独立Java非常熟悉,但JavaEE对我来说是新事物。我正在编写一些自定义代码以插入第三方JavaEE报告包。我在同一个Tomcat服务器上部署了多个实例,因此我有如下内容: C:\ +-- tomcat6 +-- webapps +-- app1 +-- app2 C:\ +--tomcat6 +--网络应用 +--附件1 +--附件2 所以当用户转到,比方说,我希望能够得到“app1”。(最好不要解

如何在JavaEE中获取当前web应用程序的名称

我对独立Java非常熟悉,但JavaEE对我来说是新事物。我正在编写一些自定义代码以插入第三方JavaEE报告包。我在同一个Tomcat服务器上部署了多个实例,因此我有如下内容:

C:\ +-- tomcat6 +-- webapps +-- app1 +-- app2 C:\ +--tomcat6 +--网络应用 +--附件1 +--附件2 所以当用户转到,比方说,我希望能够得到“app1”。(最好不要解析URL。)

另外,如果有办法获取app1的根目录(在本例中为C:\tomcat6\webapps\app1),那也太好了。

1。获取“名称” 它被称为上下文路径。如果您的代码在web应用程序请求上下文中运行,则可以通过调用来获取它

2.访问物理/真实资源 如果您试图访问Web应用程序中文件/资源的内容,最好使用以下选项之一:

还可以使用获取文件/资源在磁盘上的物理路径(给定相对于web应用的路径),但这并不可靠(例如,如果将web应用部署为WAR,则并不总是有效)

3.访问类路径资源 根据您的评论,您试图访问/WEB-INF/classes目录中的资源。因为WEB-INF/classes/*是WEB应用程序特定类的所在,所以您可以简单地访问它,就像访问Java SE应用程序中的任何类路径资源一样。同样,假设您的代码在webapp的上下文中运行,您可以简单地使用以下内容:

在您的情况下,您可能希望使用后者,然后通过Properties#load(InputStream)加载属性文件

大致如下:

Properties props = new Properties();
props.load(getClass().getResourceAsStream("/reportCustom.properties"));
我试图在webapps/myapp/WEB-INF/classes/reportCustom.properties中加载一个属性文件


由于文件位于
classes
目录中,因此可以使用(在类路径上加载文件的常用Java机制)加载它。最好使用。

谢谢您的帮助。我试图在
webapps/myapp/WEB-INF/classes/reportCustom.properties
中加载属性文件。这是一种更简单的方法吗?过去,我使用硬编码字符串获取System.getProperty(“myapp.root”),该字符串是web.xml中提供根路径的属性。但是我发现我们需要在同一个Tomcat上支持多个实例,所以我不知道将调用什么“myapp”。在您的情况下,您可以访问reportCustom.properties,就像它只是在类路径中一样。我将很快更新我的答案以包括这一点。