Sharepoint java sdk_java – 使用JAX-WS将文件保存到Sharepoint服务器
我試圖使用JAX-WS將文件保存到Sharepoint服務(wù)器. Web服務(wù)調(diào)用報(bào)告成功,但該文件不顯示.
我使用這個(gè)命令(從WinXP)生成Java代碼來進(jìn)行JAX-WS調(diào)用:
wsimport -keep -extension -Xnocompile http://hostname/sites/teamname/_vti_bin/Copy.asmx?WSDL
我得到一個(gè)我使用以下命名端口的Web服務(wù)的句柄:
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!");
}
我使用以下命令調(diào)用Web服務(wù):
port.copyIntoItems(sourceUrl,destUrlCollection,fields,"Contents of the file".getBytes(),copyIntoItemsResult,copyResultCollection)
destUrlCollection中的sourceUrl和唯一的url等于“hostname / sites / teamname / Tech Docs / Sub Folder”.
名為fields的FieldInformationCollection對象只包含一個(gè)FieldInformation.
FieldInformation對象的“HelloWorld.txt”作為displayName,internalName和value的值.
type屬性設(shè)置為FieldType.FILE. id屬性設(shè)置為(java.util.UUID.randomUUID()).toString().
對copyIntoItems的調(diào)用成功返回; copyIntoItemsResult包含一個(gè)值0和唯一的CopyResult對象
在copyResultCollection中設(shè)置的錯(cuò)誤代碼為“SUCCESS”,并顯示一條空錯(cuò)誤消息.
當(dāng)我在Sharepoint上查看“技術(shù)文檔”庫時(shí),在“子文件夾”中沒有文件.
為什么不告訴我我做錯(cuò)了什么?我只想錯(cuò)過一步嗎?
更新(2011年2月26日)
我已經(jīng)將我的FieldInformation對象的displayName和internalName屬性更改為“標(biāo)題”.仍然沒有快樂,而是向正確的方向邁出一步.
在玩了一下url后,我得到了這些結(jié)果:
同時(shí)使用sourceUrl和唯一的目標(biāo)URL等效,沒有協(xié)議,我得到SUCCESS響應(yīng),但文檔庫中沒有出現(xiàn)實(shí)際的文檔.
當(dāng)兩個(gè)URL等同,但指定了一個(gè)“http://”協(xié)議時(shí),我得到一個(gè)UNKNOWN錯(cuò)誤,“對象引用未設(shè)置為對象的實(shí)例”.作為消息.
源URL是一個(gè)空字符串或null,“值不在預(yù)期范圍內(nèi)”.作為錯(cuò)誤消息.
更新(2011年3月2日)
據(jù)Alexei Levenkov的建議,我用Fiddler看看發(fā)生了什么,發(fā)現(xiàn)這一點(diǎn):
# 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
它看起來像一個(gè)簡單的握手,直到它獲得HTTP 200為WSDL和Web服務(wù)調(diào)用.
所以我試著沒有把我的用戶名和密碼放在RequestContext中,我得到一個(gè)類似的東西,就像上面的WSDL請求(兩個(gè)HTTP 401和一個(gè)HTTP 200)一樣,但WebService調(diào)用只有一個(gè)HTTP 200.如果不再使用我的用戶名/密碼,那么在理論上應(yīng)該認(rèn)證失敗.
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Sharepoint java sdk_java – 使用JAX-WS将文件保存到Sharepoint服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刺激战场的战绩能删吗
- 下一篇: java输入键盘_java键盘输入