获得服务器端的绝对路径

时间:2014-05-05 14:57:45

标签: gwt path server-side

Iam尝试从1小时开始获取文件服务器端的绝对路径:

   String path =  request.getRequestURL();

JasperCompileManager.compileReportToFile(path+"/test.jrxml",path+"/test.jasper");

这不起作用我的期望是:

未找到:http \ 12.0.0.13:8080] \ test \ test.jrxml dataname中的语法错误...等

2 个答案:

答案 0 :(得分:4)

RemoteServiceServlet类中尝试这个,以获取放置在absolute path目录下的任何资源的war,这些资源在服务器上部署时实际上是服务器目录的路径。

String pngFullPath = this.getThreadLocalRequest().getSession().getServletContext()
        .getRealPath("images/1.png");
System.out.println(pngFullPath);


String icoFullPath = this.getThreadLocalRequest().getSession().getServletContext()
        .getRealPath("favicon.ico");
System.out.println(icoFullPath);

输出:

D:\Workspace\GWTProject\war\images\1.png
D:\Workspace\GWTProject\war\favicon.ico

现在根据项目中test.jrxml文件的位置进行更改。

这是项目结构:

enter image description here

答案 1 :(得分:2)

这是我使用的方法:

public static String getServerBase(HttpServletRequest req)
{
    String scheme = req.getScheme(); // http
    String serverName = req.getServerName(); // sub.domain.ac.uk
    int serverPort = req.getServerPort(); // 80
    String contextPath = req.getContextPath(); // /MyApp

    return scheme + "://" + serverName + ":" + serverPort + contextPath;
}

然后只需附加您的文件名。