2011-04-16 26 views
0

我有一些用戶需要導入到liferay的csv文件中。我對Hypersonic sql沒有任何想法。所以想到從.net插入用戶。使用liferay webservices從.net添加用戶到liferay

我試着調用getUserById()來測試。它給了我這個錯誤。

操作updateUser1中的RPC消息updateUserRequest1具有無效的主體名稱updateUser。它必須更新用戶1

任何想法如何做到這一點?或者將用戶插入liferay的其他更好的方法。我知道SQL服務器和C#,沒有java

回答

0

你首先需要添加一個Web引用到你的.net項目中的特定Web服務。對於專門尋找Portal_UserService Web服務的用戶。如果在本地測試目的運行Liferay的,完整的地址爲Web服務應該是這樣的:

http://127.0.0.1:8080/tunnel-web/axis/Portal_UserService?wsdl 

否則,你仍然可以按照正確的URL到Web服務指向的現場安裝。

現在,就您的項目而言,一旦您將Web引用添加到項目中,您應該可以調用它及其方法/接口/類,並在C#中執行所有編碼。這裏是一個小例子:

name_of_your_web_reference.UserServiceSoapService proxy = new name_of_your_web_reference.UserServiceSoapService(); 
proxy.addUser("testUser",...); 

所有你應該做的是通過你的CVS文件中讀取和使用的方法來添加用戶

這裏也是他們的最新API文檔的參考。如果您有任何其他問題,可以查看這些方法。

Liferay 6.0.5 API Portal Services

希望它能幫助。

1

我意識到這種反應不是特別及時,但我碰到了同樣的問題,我不得不想辦法繼續工作。

您收到的消息是由在由工具生成的代理類的問題引起的:

RPC消息updateUserRequest1在操作updateUser1具有無效體名稱UpdateUser兩個。它必須是updateUser1

你可以進入產生,Reference.cs的源代碼,並查找updateUserRequest1的局部類定義:

[System.ServiceModel.MessageContractAttribute(WrapperName="updateUser", 
WrapperNamespace="urn:http.service.portal.liferay.com", IsWrapped=true)] 
public partial class updateUserRequest1 { 

,改變WrapperName值「updateUser1」:

[System.ServiceModel.MessageContractAttribute(WrapperName="updateUser1", 
WrapperNamespace="urn:http.service.portal.liferay.com", IsWrapped=true)] 
public partial class updateUserRequest1 { 

這會讓你過去那個問題。生成的UserService中的代理類存在另一個問題,但它可以用相同的方法修復。

我碰到了其他一些問題,所以創建了這個blog post。如果你需要的話,那裏有一個完整的VS2010.Net解決方案的鏈接。祝你好運。