Sharepoint java sdk_java – 使用JAX-WS将文件保存到Sharepoint服务器
我試圖使用JAX-WS將文件保存到Sharepoint服務器. Web服務調用報告成功,但該文件不顯示.
我使用這個命令(從WinXP)生成Java代碼來進行JAX-WS調用:
wsimport -keep -extension -Xnocompile http://hostname/sites/teamname/_vti_bin/Copy.asmx?WSDL
我得到一個我使用以下命名端口的Web服務的句柄:
CopySoap port = null;
if (userName != null && password != null) {
Copy service = new Copy();
port = service.getCopySoap();
((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY,userName);
((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY,password);
} else {
throw new Exception("Holy Frijolé! Null userName and/or password!");
}
我使用以下命令調用Web服務:
port.copyIntoItems(sourceUrl,destUrlCollection,fields,"Contents of the file".getBytes(),copyIntoItemsResult,copyResultCollection)
destUrlCollection中的sourceUrl和唯一的url等于“hostname / sites / teamname / Tech Docs / Sub Folder”.
名為fields的FieldInformationCollection對象只包含一個FieldInformation.
FieldInformation對象的“HelloWorld.txt”作為displayName,internalName和value的值.
type屬性設置為FieldType.FILE. id屬性設置為(java.util.UUID.randomUUID()).toString().
對copyIntoItems的調用成功返回; copyIntoItemsResult包含一個值0和唯一的CopyResult對象
在copyResultCollection中設置的錯誤代碼為“SUCCESS”,并顯示一條空錯誤消息.
當我在Sharepoint上查看“技術文檔”庫時,在“子文件夾”中沒有文件.
為什么不告訴我我做錯了什么?我只想錯過一步嗎?
更新(2011年2月26日)
我已經將我的FieldInformation對象的displayName和internalName屬性更改為“標題”.仍然沒有快樂,而是向正確的方向邁出一步.
在玩了一下url后,我得到了這些結果:
同時使用sourceUrl和唯一的目標URL等效,沒有協議,我得到SUCCESS響應,但文檔庫中沒有出現實際的文檔.
當兩個URL等同,但指定了一個“http://”協議時,我得到一個UNKNOWN錯誤,“對象引用未設置為對象的實例”.作為消息.
源URL是一個空字符串或null,“值不在預期范圍內”.作為錯誤消息.
更新(2011年3月2日)
據Alexei Levenkov的建議,我用Fiddler看看發生了什么,發現這一點:
# Result Protocol Host URL Body Caching Content-Type Process Comments Custom
34 401 HTTP hostname /sites/teamname/_vti_bin/Copy.asmx?WSDL 1,656 text/html javaw:5304
35 401 HTTP hostname /sites/teamname/_vti_bin/Copy.asmx?WSDL 1,539 text/html javaw:5304
36 200 HTTP hostname /sites/teamname/_vti_bin/Copy.asmx?WSDL 10,887 private text/xml; charset=utf-8 javaw:5304
37 401 HTTP hostname /sites/teamname/_vti_bin/Copy.asmx 1,656 text/html javaw:5304
38 401 HTTP hostname /sites/teamname/_vti_bin/Copy.asmx 1,539 text/html javaw:5304
39 200 HTTP hostname /sites/teamname/_vti_bin/Copy.asmx 611 private,max-age=0 text/xml; charset=utf-8 javaw:5304
它看起來像一個簡單的握手,直到它獲得HTTP 200為WSDL和Web服務調用.
所以我試著沒有把我的用戶名和密碼放在RequestContext中,我得到一個類似的東西,就像上面的WSDL請求(兩個HTTP 401和一個HTTP 200)一樣,但WebService調用只有一個HTTP 200.如果不再使用我的用戶名/密碼,那么在理論上應該認證失敗.
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Sharepoint java sdk_java – 使用JAX-WS将文件保存到Sharepoint服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刺激战场的战绩能删吗
- 下一篇: final cut Pro如何延时摄影