Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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 在启动期间确定Axis2服务的文件系统路径_Java_Web Services_Filesystems_Axis2 - Fatal编程技术网

Java 在启动期间确定Axis2服务的文件系统路径

Java 在启动期间确定Axis2服务的文件系统路径,java,web-services,filesystems,axis2,Java,Web Services,Filesystems,Axis2,我部署了一些Axis2 web服务,这意味着我不会创建一个.aar文件保存在服务目录中,而是有一个目录,其中包含Axis2服务的文件和文件夹。如下所示: […]axis2\WEB-INF\services\someService\META-INF\service.xml 我的ServiceClass正在实现ServiceLifeCycle,以便在服务启动期间执行某些操作。要在启动期间完成需要执行的操作,我需要在服务目录中创建一个文件,但在启动期间,我似乎无法获取服务目录的路径。通常AxisSer

我部署了一些Axis2 web服务,这意味着我不会创建一个.aar文件保存在服务目录中,而是有一个目录,其中包含Axis2服务的文件和文件夹。如下所示:

[…]axis2\WEB-INF\services\someService\META-INF\service.xml

我的ServiceClass正在实现ServiceLifeCycle,以便在服务启动期间执行某些操作。要在启动期间完成需要执行的操作,我需要在服务目录中创建一个文件,但在启动期间,我似乎无法获取服务目录的路径。通常AxisService.getFileName()会提供指向我的服务目录的路径,但在启动期间,似乎还没有指向服务的路径,getFileName()会提供“null”。该路径似乎仅适用于已启动的服务,因为在关闭方法中,getFileName提供了指向我的服务的正确路径

在服务启动期间,是否有任何方法可以获取may路径?我已经在寻找钩子或其他东西,至少在服务启动后可以直接得到通知,但在第一次调用它来获取路径并执行“操作”之前,似乎没有可用的钩子或其他东西

我不想在service.xml文件中配置我的服务路径,我更希望服务能够自己检索它的路径


谢谢你的帮助

Axis2为每个服务提供了一个类加载器,该类加载器可以访问随服务打包的文件(在AAR或分解的服务目录中)。访问随服务打包的文件的正常方法是使用该类加载器的
getResource()
getResourceAsStream()
函数


要获取服务类加载器,可以调用
AxisService.getClassLoader()
。从服务中打包的类调用
this.getClass().getClassLoader()
也应该可以。谢谢,这似乎正是我想要的。我已经看到了对类加载器的访问,但认为它不能用于解析文件的路径。幸运的是我错了。:-)下面这样的一行给出了我请求的文件的完整路径:URL dummy=arg1.getClassLoader().getResource(“META-INF/config/app_config.cfg”);