2016-04-05 25 views
3

我想實現一個接受json字符串並基於它獲取一個.zip文件的密鑰的web服務。如何使用RestEasy框架發送多部分響應

然後我需要發送捆綁在多部分數據中的.zip文件和json字符串。

所以基本上我的回答應該包含兩個部分

1) .zip file 
2) json string 

這裏一個多對象是我當前的代碼

public class ContentRepo { 



@POST 
@Path("/fetchModel") 
@Consumes("application/json") 
@Produces("multipart/mixed") 
public Response getContent(String strJson) 
{ 
    Response response = null; 
    try{ 
     JSONObject objJson = new JSONObject(strJson); 
     String strAssetName = objJson.getString("assetName"); 
     if(null != strAssetName){ 
      Client client = ClientBuilder.newClient(); 
      ResteasyClient restEasyClient = (ResteasyClient) client; 
      ResteasyWebTarget target = restEasyClient.target("http://localhost:8091/ContentServer/").path("fetchModel"); 
      response = target.request() 
        .post(Entity.entity(getMultiPartData("Car"), MediaType.MULTIPART_FORM_DATA)); 
     } 
    }catch(Exception ex){ 
     ex.printStackTrace(); 
    } 

    return response; 
} 

public MultipartFormDataOutput getMultiPartData(String strAssetName){ 

    MultipartFormDataOutput objMultiPartData = new MultipartFormDataOutput(); 
    JSONObject objJson = new JSONObject(); 

    try{ 
     if(strAssetName.equalsIgnoreCase("Car")){ 
      //car assets 
      try { 
       objMultiPartData.addFormData("file", new FileBody(new File("D:/programs/content_server/Car/Car.zip")), MediaType.APPLICATION_OCTET_STREAM_TYPE); 
       objJson.put("png", "car"); 
       objMultiPartData.addFormData("mapping", new StringBody(objJson.toString()), MediaType.APPLICATION_JSON_TYPE); 
      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }catch(Exception ex){ 
     ex.printStackTrace(); 
    } 

    return objMultiPartData; 
} 

}

然而,當運行上面我不能夠獲取多部分響應。取而代之的是得到以下例外

Caused by: java.lang.NoSuchMethodError: org.jboss.resteasy.spi.ResteasyProviderFactory.<init>(Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)V 
at org.jboss.resteasy.client.jaxrs.internal.ClientConfiguration.<init>(ClientConfiguration.java:44) 
at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.build(ResteasyClientBuilder.java:347) 
at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.build(ResteasyClientBuilder.java:52) 
at javax.ws.rs.client.ClientBuilder.newClient(ClientBuilder.java:114) 
at com.app.wikicontent.WikitudeContentRepo.getARModel(WikitudeContentRepo.java:45) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:155) 
at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257) 
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222) 
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:211) 
at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:525) 
... 25 more 
+0

發佈您正在使用的依賴關係的更多詳細信息。 –

回答

相關問題