使用liferay Web服务将用户从.net添加到liferay

时间:2011-04-16 21:56:33

标签: c# .net liferay liferay-6

我将csv文件中的一些用户导入到liferay中。我对Hypersonic sql一无所知。所以考虑从.net。

插入用户

我尝试调用getUserById()进行测试。它给了我这个错误。

操作updateUser1中的RPC消息updateUserRequest1具有无效的正文名称updateUser。它必须是updateUser1

知道怎么做吗?或任何其他更好的方法将用户插入liferay。我知道sql server和C#,没有java

2 个答案:

答案 0 :(得分:1)

我意识到这种反应并不是特别及时,但我刚刚遇到了同样的问题,我必须考虑继续工作。

您收到的消息是由该工具生成的代理类中的问题引起的:

  

操作updateUser1中的RPC消息updateUserRequest1具有无效的正文名称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解决方案。祝你好运。

答案 1 :(得分:0)

首先需要在.net项目中为特定Web服务添加Web引用。对于您专门寻找Portal_UserService Web服务的用户。如果您在本地运行Liferay用于测试目的,则Web服务的完整地址应如下所示:

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

否则,您仍然可以通过遵循Web服务的正确URL来指向实时安装。

现在,就您的项目而言,一旦您将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

希望它有所帮助。