Iam尝试从1小时开始获取文件服务器端的绝对路径:
String path = request.getRequestURL();
JasperCompileManager.compileReportToFile(path+"/test.jrxml",path+"/test.jasper");
这不起作用我的期望是:
未找到:http \ 12.0.0.13:8080] \ test \ test.jrxml dataname中的语法错误...等
答案 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
文件的位置进行更改。
这是项目结构:
答案 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;
}
然后只需附加您的文件名。