我已經創建了一個Java web服務,在選定的文件上執行指定的功能。我將不得不將服務部署到服務器,並將調用url來從我的Java代碼中提取服務。現在,要在其上執行功能的文件必須作爲參數發送到webservice的post標題中。我怎樣才能從服務器訪問這個文件路徑?如果我只是將路徑發送到該文件(例如C:/folder/file.pdf)作爲web服務的參數,它是否會工作?如果不是,那又如何實現呢?如何從部署在服務器上的Java web服務訪問本地文件?
在部署服務之前,我需要知道答案。
WebClient的是:
WebTarget webTarget = clientobj.target("http://localhost:8080/myWebApp/method1/Name1");
MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
formData.add("methodName", methodName);
formData.add("pdfPath", "C:/folder/a.pdf"); //path to my pdf doc that needs to be sent to the server
formData.add("textFile", "C:/folder/b.txt");
Response response = webTarget.request().post(Entity.form(formData));
String output = response.readEntity(String.class);
和web服務如下:
@POST
@Produces(MediaType.TEXT_PLAIN)
public String createBooking(@PathParam("methodName") String methodName,
@FormParam("pdfPath") String pdfPath,
@FormParam("textFile") String textFile))
{
PdfReader reader = new PdfReader(pdfPath);
}
Web服務服務器可以訪問您計算機上的文件嗎?如果是這樣,您可以發送文件的名稱。如果沒有,您可能必須將文件上傳到Web服務器服務器,以便它可以直接訪問它。 – Jason
如何知道服務器是否可以訪問我的機器上的文件?我是新手! –
然後它不。以這種方式來看 - 我可以給你發一個破損的燈具,你可以修理它並將它貼回給我。如果我只是給你發電子郵件給我,你家裏的燈具壞了,那麼除非你有我的鑰匙和地址,否則它不會被修復。你有同樣的問題 - 發送你的網絡服務器文件的路徑是完全沒有用的,除非你在某種程度上交換了訪問你的計算機的方式。你需要結束整個文件,服務器會處理它,然後你可以再次下載它。 –