我是Jersey REST的新手.我按照教程http://javapapers.com/java/restful-web-services-with-java-jax-rs-using-jersey/进行操作.它在Tomcat 7本地运行良好.但是当我将它部署到Openshift时,我只是找不到404.
这是我的web.xml
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.market.ws</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
这是我的资源
@Path("/api")
public class TicketsResource {
// Allows to insert contextual objects into the class,
// e.g. ServletContext, Request, Response, UriInfo
@Context
UriInfo uriInfo;
@Context
Request request;
// Return the list of todos to the user in the browser
// With the browser you can only issue HTTP GET requests\
@Path("/query")
@GET
@Produces(MediaType.TEXT_XML)
public List<Ticket> getTicketsBrowser() { …
Run Code Online (Sandbox Code Playgroud) 我想下载一个远程文件并提供文件名.如果文件在我们的服务器上,则此方法有效.但它不适用于远程文件和下载somerandomname.pdf
<a href="http://file.com/somerandomname.pdf" download="mypdf.pdf">DOWNLOAD</a>
Run Code Online (Sandbox Code Playgroud)
现在我尝试在python处理程序中下载它.它工作并下载我想要的文件名.但问题是我只能在浏览器中看到下载的文件util已完成下载.我无法在浏览器中看到下载过程.它只是在后端加载远程文件.有没有办法来解决这个问题?
def get(self):
url = self.get_argument('url')
filename = self.get_argument('filename')
self.set_header('Content-Type', 'application/octet-stream')
self.set_header('Content-Disposition', 'attachment; filename=%s' % filename)
f = urllib2.urlopen(url)
self.write(f.read())
self.finish()
Run Code Online (Sandbox Code Playgroud)