Mag*_*ian 3 java rest web-services jax-ws glassfish-4
这似乎很容易,但似乎我无法在 Google 上找到答案。我需要在我的 webroot 文件夹中发送文件列表,类似于目录浏览。
我正在使用 Glassfish、JAX-RS.WS 和 genson 作为 POJO 编写器。
应用程序结构如下:
download
|- build
|- dist
|- src
|- web
| |- files
Run Code Online (Sandbox Code Playgroud)
下面是我的代码
@Path("home")
public class HomeResource {
@Context
private UriInfo context;
@GET
@Produces(MediaType.APPLICATION_JSON)
public String get() {
return System.getProperty("user.dir"); // ??? Any idea what should be in here?
}
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
/usr/lib/glassfish/glassfish/domains/domain1/config
Run Code Online (Sandbox Code Playgroud)
我需要它指向
/sites/download/web/
Run Code Online (Sandbox Code Playgroud)
或者至少
/sites/download/
Run Code Online (Sandbox Code Playgroud)
因为我需要我的服务提供一个列表,例如:
/files/item.zip
/files/document.pdf
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗??
谢谢
您可以从servlet 上下文中获取真实路径。
package com.scotth.jaxrsrealpath;
import javax.servlet.ServletContext;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
/**
* @author scotth
* jax-rs application deployed to /JaxRsRealPath/
*/
@Path("sample")
public class SampleResource {
@Context ServletContext servletContext;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getHello(@QueryParam("path") String requestedPath) {
String path = requestedPath == null ? "/" : requestedPath;
String actualPath = servletContext.getRealPath(path);
return String.format("Hello, world! \nRequested path: %s\nActual path: %s", path, actualPath);
}
}
Run Code Online (Sandbox Code Playgroud)
/JaxRsRealPath/sample?path=/WEB-INF
在我的 eclipse 管理的 Tomcat 实例中,请求产生所请求文件或文件夹的实际文件系统路径 - 可用于java.io.File
:
Hello, world!
Requested path: /WEB-INF
Actual path: /Users/scotth/Workspaces/eclipse45-default/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/JaxRsRealPath/WEB-INF/
Run Code Online (Sandbox Code Playgroud)
另一个仅请求的示例/JaxRsRealPath/sample
(代码然后检查上下文根的路径/
):
Hello, world!
Requested path: /
Actual path: /Users/scotth/Workspaces/eclipse45-default/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/JaxRsRealPath/
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以从那里使用文件 API获取文件的目录列表。
归档时间: |
|
查看次数: |
5254 次 |
最近记录: |