發表文章

目前顯示的是有「jersey」標籤的文章

jersey + swagger server basic setting

本段程式碼為jersey 配置swagger的配置方式

jersey CORS setting

配置如下: import java.io.IOException; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.ext.Provider; @Provider public class CORSFilter implements ContainerResponseFilter {   @Override   public void filter(ContainerRequestContext request,           ContainerResponseContext response) throws IOException {     response.getHeaders().add("Access-Control-Allow-Origin", "*");     response.getHeaders().add("Access-Control-Allow-Headers",             "origin, content-type, accept, authorization");     response.getHeaders().add("Access-Control-Allow-Credentials", "true");     response.getHeaders().add("Access-Control-Allow-Methods",             "GET, POST, PUT, DELETE, OPTIONS, HEAD");   } }

jersey gzip setting

jersey gzip setting如下 import java.io.IOException; import java.io.OutputStream; import java.util.List; import java.util.zip.GZIPOutputStream; import javax.validation.constraints.NotNull; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.ext.WriterInterceptor; import javax.ws.rs.ext.WriterInterceptorContext; import org.slf4j.LoggerFactory; public class CompressionWriterInterceptor implements WriterInterceptor {     private static final org.slf4j.Logger log = LoggerFactory.getLogger(CompressionWriterInterceptor.class);     private HttpHeaders httpHeaders;       public CompressionWriterInterceptor (@Context @NotNull HttpHeaders httpHeaders) {         this.httpHeaders = httpHeaders;     }     @Override     public void aroundWriteTo (WriterInterceptorContext context)             throws IOExce...

jersey 檔案下載中文檔名處理

  範例程式碼如下   @GET   @Path("/File")   @Produces(MediaType.APPLICATION_OCTET_STREAM + "; charset=UTF-8")   public Response downloadFile(           @QueryParam("FileName") String FileName,           @QueryParam("FilePath") String FilePath,           @Context HttpServletRequest request   ) throws IOException { //依據瀏覽器的不同,檔名需要不同的編碼     if (request.getHeader("User-Agent").indexOf("MSIE") != -1) {       // IE 8 9 10       FileName = java.net.URLEncoder.encode(FileName, "UTF-8");     } else if (request.getHeader("User-Agent").indexOf("Trident") != -1) {       //IE11       FileName = java.net.URLEncoder.encode(FileName, "UTF-8");     } else {       //其他瀏覽器中文檔名處理       FileName = java.net.URLDecoder.decode(FileName, "UTF-8");       FileName = new String(Fil...

[jersey]Download file from Remote Server

從其他網站伺服器下載範例 import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path("/Purchase") public class File {     @GET   @Path("File/{FileName}")   @Produces(MediaType.APPLICATION_OCTET_STREAM + "; charset=UTF-8")   public Response getFile2(           @PathParam("FileName") String FileName   ) throws MalformedURLException, IOException  {     //遠端取檔案下載     URL url = new URL("http://www.example.com/files/" + FileName);     URLConnection uc = url.openConnection();     Response.ResponseBuilder response = Response.ok((Object) uc.getInputStream());     response.header("Content-Disposition", "attachment; filename=" + FileNam...

[API Server]jersey 檔案多檔上傳

1. POM     <dependency>       <groupId>org.glassfish.jersey.containers</groupId>       <artifactId>jersey-container-servlet</artifactId>       <version>2.17</version>     </dependency>       <dependency>       <groupId>org.glassfish.jersey.containers</groupId>       <artifactId>jersey-container-servlet-core</artifactId>       <version>2.17</version>     </dependency>     <dependency>       <groupId>org.glassfish.jersey.media</groupId>       <artifactId>jersey-media-multipart</artifactId>       <version>2.17</version>     </dependency> 2.上傳網頁 <html>   <head>     <title<TODO supply a title</title>   ...

[API Server]jersey 檔案上傳

1. POM           org.glassfish.jersey.containers       jersey-container-servlet       2.17                  org.glassfish.jersey.containers       jersey-container-servlet-core       2.17               org.glassfish.jersey.media       jersey-media-multipart       2.17     2.上傳網頁 <html>   <head>     <title>TODO supply a title</title>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">   </head>   <body>     <form action="API/file/upload" method="post" enctype="multipart/form-data" >       <p>         Select a file : <input type="file" name="file" />  ...

[API Server] JAX-RS 使用 Jersey 2.1.7 架設筆記

使用Jersey 建立Restful Server 架設環境如下 Java 6 Tomcat 7 (Tomcat 5 版會有問題,暫不處理) Maven Jersey 2.17 1. 設定pom.xml     <dependency>       <groupId>org.glassfish.jersey.containers</groupId>       <artifactId>jersey-container-servlet</artifactId>       <version>2.17</version>     </dependency>       <dependency>       <groupId>org.glassfish.jersey.containers</groupId>       <artifactId>jersey-container-servlet-core</artifactId>       <version>2.17</version>     </dependency> 2. 建立API Server所指定到的路徑 package com.example.jaxrs; import javax.ws.rs.ApplicationPath; import org.glassfish.jersey.server.ResourceConfig; @ApplicationPath("API") //所指定的網頁路徑 public class MyApplication extends ResourceConfig {   public MyApplicatio...