2012-03-30 54 views
1

我有一個restfull服務,在該服務中,我應該向客戶端發送一個inputstream對象。所以我寫了下面的代碼...在服務方法..RESTfull服務方法可以將任何對象發送到客戶端嗎?

@GET 
@Path("/getFile") 
@Produces("application/pdf") 
public InputStream getFile() throws Exception { 
FileInputStream fin = null; 
FileOutputStream fout = null; 
DataInputStream dis = null; 
System.out.println("getFile called in server..."); 
File serverFile = null; 
System.out.println("getfile called.."); 
try { 
    serverFile = new File("E:\\Sample2.txt"); 
    fin = new FileInputStream(serverFile); 
    dis = new DataInputStream(fin); 
    fin.close(); 
    // dis.close(); 
} catch (Exception e) { 
    System.out.println("Exception in server appl..***************"); 
    e.printStackTrace(); 
} 
return dis; 
} 

在我的客戶端應用程序的IM調用該服務爲...

String clientURL = "http://xxxxxxx:xxxx/RestfullApp02/resources/LoadFile"; 
Client client = Client.create(); 
WebResource webResource = client.resource(clientURL); 

InputStream ob = webResource.path("getFile").get(InputStream.class); 

但我無法獲得響應,它發送500錯誤..像下面errror ....

com.sun.jersey.api.client.UniformInterfaceException: GET http://myIp:myport/RestfullApp02/resources/LoadFile/getFile returned a response status of 500 

幫我

回答

2

請參考下面的鏈接,我感覺喲你可以通過它解決問題。

http://wpcertification.blogspot.in/2011/11/returning-binary-file-from-rest-service.html

+0

當我們返回的InputStream對象。只有在返回之前的VL關閉InputStream ..然後當v可以讀取數據流.. 你能告訴我的客戶如何調用此方法並獲取InputStream對象.... – 2012-03-30 13:40:40

+0

您的問題中的一段代碼將爲此工作: InputStream ob = webResource.path(「getFile」)。get(InputStream.class); – NamingException 2012-03-30 13:47:15

+0

謝謝你naveen ..我終於得到了...救了我的一天... – 2012-03-30 13:56:20

相關問題