环境 jboss7.1.2  linuxweb应用项目打成war包部署需要 : 获取jboss下运行的web应用的绝对路径
背景:项目中有个初始化方法实现ApplicationListener 然后实现初始化、在项目未完全启开时候便已经初始化完成、现有velocity模版 用来静态化页面、初始化时寻找模版路径出了问题
现在是各种获取路径的方法都试的差不多了、指定其路径也不好使、(但windows下运行正常)
因项目未完全启开、通过ServletActionContext 获取路径时候就是null了、通过类来获取的路径在jboss下打成war包的就不行了、jboss运行时候是tmp目录下的web应用+不规则的字符、也试过指定 目录:/usr/local/JBoss\ AS7.1.2/standalone/deployments/bojinv2.war.deployed/web最后还是找不到相对应的模版文件还是上面的原因  jboss貌似会解压执行tmp目录下的文件。
各位有什么好的解决方法吗?
网上也查了很多资料   大部分都是一样的、
也都试过了、

解决方案 »

  1.   

    各位有什么好方法寻找webroot 或者项目的根路径吗、
    这种war包的方式找路径很头疼啊、
    先谢谢了、
      

  2.   

    request.getSession().getServletContext().getRealPath() ;
    再拼地址 行不?
      

  3.   

    我遇到一个跟你类似的问题,也是在tomcat没有完全好的时候就要获取到项目的根路径,现在也没有什么好的解决方法
      

  4.   

    部署的路径是
    /usr/local/JBoss/standalone/deployments/MyProject.war而以下代码是测试出的路径。        String str = System.getProperty("user.dir") + "/web" + templatePath;       获取后的路径: /root/web/template/velocity/main
            //2
            String pa = Test.class.getResource("/").getFile();        获取后的路径:/usr/local/JBoss/modules/sun/jdk/main/service-loader-resources/        String pb = Test.class.getResource("").toString();        获取后的路径:vfs:/content/MyProject.war/WEB-INF/classes/cn/        String pc = Thread.currentThread().getContextClassLoader().getResource("/").getPath();       获取后的路径:/usr/local/JBoss/modules/sun/jdk/main/service-loader-resources/
            String pd = Thread.currentThread().getContextClassLoader().getResource("").getPath();       获取的路径:/usr/local/JBoss/modules/sun/jdk/main/service-loader-resources/
      

  5.   

    要不换个思维、如何让web程序 启动完毕才执行一次某个方法、其他时刻不调用不执行、