Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
获取JAVA EE服务器中已安装服务器的路径_Java_Path_Location_Wildfly - Fatal编程技术网

获取JAVA EE服务器中已安装服务器的路径

获取JAVA EE服务器中已安装服务器的路径,java,path,location,wildfly,Java,Path,Location,Wildfly,我需要安装的JAVA EE服务器(Wildfly)的操作系统的主路径,该服务器是当前运行的web应用程序 例如,如果JAVA EE服务器(Wilfly)安装在: C:/Software/myApp/myServer 我需要的正是这个位置。 我怎样才能做到这一点。 可能是Wildfly还有另一个实例,所以我不能使用系统变量。试试System.getProperty(“jboss.home.dir”) 无论如何,根据安装位置的不同,这会有点设计的味道。试试System.getProperty(“jb

我需要安装的JAVA EE服务器(Wildfly)的操作系统的主路径,该服务器是当前运行的web应用程序

例如,如果JAVA EE服务器(Wilfly)安装在: C:/Software/myApp/myServer

我需要的正是这个位置。 我怎样才能做到这一点。
可能是Wildfly还有另一个实例,所以我不能使用系统变量。

试试
System.getProperty(“jboss.home.dir”)


无论如何,根据安装位置的不同,这会有点设计的味道。

试试
System.getProperty(“jboss.home.dir”)


不管怎么说,根据安装位置的不同,会有一点设计的味道。

不幸的是,您对问题的描述不清楚,因为EJB是业务逻辑,而不是直接用于web应用程序,当您在war文件中部署所有内容时也是如此。因为EJB没有关于请求本身的信息,除了它是一个带有JAXWS的Web服务

当您只需要服务器的根路径而不需要web应用程序时,您可以使用@Harald Wellmann写道:
System.getProperty(“jboss.home.dir”)
您将获得服务器的根路径

如果您需要应用程序的路径,那么您可以使用

    this.getClass().getProtectionDomain().getCodeSource().getLocation()
这将为您提供
/WEB-INF/classes
文件夹的标准路径

如果您使用JSF、JSP或servlet,那么就简单多了,您可以像我以前写的那样,使用
getServletContext().getRealPath(“/”
直接通过HttpServletRequest对象获取信息

使用带有JAXWS的EJB,您可以获得如下HttpServletRequest对象:

    @Context
    private HttpServletRequest httpRequest;

不幸的是,您对问题的描述不清楚,因为EJB是业务逻辑,而不是直接用于web应用程序,同样是在war文件中部署所有组件时。因为EJB没有关于请求本身的信息,除了它是一个带有JAXWS的Web服务

当您只需要服务器的根路径而不需要web应用程序时,您可以使用@Harald Wellmann写道:
System.getProperty(“jboss.home.dir”)
您将获得服务器的根路径

如果您需要应用程序的路径,那么您可以使用

    this.getClass().getProtectionDomain().getCodeSource().getLocation()
这将为您提供
/WEB-INF/classes
文件夹的标准路径

如果您使用JSF、JSP或servlet,那么就简单多了,您可以像我以前写的那样,使用
getServletContext().getRealPath(“/”
直接通过HttpServletRequest对象获取信息

使用带有JAXWS的EJB,您可以获得如下HttpServletRequest对象:

    @Context
    private HttpServletRequest httpRequest;
服务器目录(服务器/bin)的路径:

其他服务器目录的路径,“webapps”例如:

File inputFile = new File("../webapps/file.xml"); // server_dir/webapps/file.xml
摆脱绝对路径的好方法:) 在Tomcat上测试过,但希望能有所帮助。

服务器目录路径(server/bin):

其他服务器目录的路径,“webapps”例如:

File inputFile = new File("../webapps/file.xml"); // server_dir/webapps/file.xml
摆脱绝对路径的好方法:)

在Tomcat上测试过,但希望能有所帮助。

您使用的是哪种web框架?您可以使用类似于
getServletContext().getRealPath(“/”)
的东西,我正在使用ejbbean、CDI……也许我必须问一个更好的问题。你在哪里需要路径?在EJB内部或前端内部,如JSP、JSF、Servlet、JAX-RS…?不,我需要EJBCDI中的路径,您使用的是哪种web框架?您可以使用类似于
getServletContext().getRealPath(“/”)
的东西,我正在使用ejbbean、CDI……也许我必须问一个更好的问题。你在哪里需要路径?在EJB内部或前端内部,如JSP、JSF、Servlet、JAX-RS…?不,我需要EJBCDI中的路径也可以,但如果我的PC上安装了两个或更多Wildfly怎么办?这也有效吗?是的,属性是由WildFly在每个进程中自行设置的。关于设计气味,您是对的。我想不出一个好的理由首先需要这些信息。好吧,但是如果我的电脑上安装了两个或更多的Wildfly怎么办?这也有效吗?是的,属性是由WildFly在每个进程中自行设置的。关于设计气味,您是对的。我想不出一个好的理由需要这些信息。谢谢。但是写为:System.getProperty(“jboss.home.dir”)是否正确,如果安装了两个或更多的wildfly服务器?它是服务器的根路径。如果您将有不同的服务器,那么您也将有不同的路径。如果您在一台服务器中只有不同的应用程序,那么您将始终获得相同的路径。试试看,你会发现什么对你最好。谢谢。但是写为:System.getProperty(“jboss.home.dir”)是否正确,如果安装了两个或更多的wildfly服务器?它是服务器的根路径。如果您将有不同的服务器,那么您也将有不同的路径。如果您在一台服务器中只有不同的应用程序,那么您将始终获得相同的路径。试试看,你会发现什么对你最好。