2011-04-16 56 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解决方案的链接。祝你好运。