我在 csv 文件中有一些用户要导入 liferay。我对Hypersonic sql一无所知。所以想到从.net插入用户。
我尝试调用 getUserById() 进行测试。它给了我这个错误。
操作 updateUser1 中的 RPC 消息 updateUserRequest1 具有无效的正文名称 updateUser。它必须是 updateUser1
知道怎么做吗?或任何其他更好的方法将用户插入 liferay。我知道 sql server 和 C#,没有 java
我意识到这个响应不是特别及时,但我只是遇到了同样的问题,我必须弄清楚才能继续工作。
您收到的消息是由该工具生成的代理类中的问题引起的:
操作 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 生成的代理类还有另一个问题,但可以用同样的方法修复。
除此之外,我还遇到了其他一些问题,因此创建了这篇博文。如果您需要,那里有一个完整的 VS2010 .Net 解决方案的链接。祝你好运。
您首先需要为您的 .net 项目中的特定 Web 服务添加一个 Web 引用。对于您专门寻找 Portal_UserService 网络服务的用户。如果您出于测试目的在本地运行 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 文档的参考。如果在调用它们时遇到任何其他问题,您可以在那里查找这些方法。
希望能帮助到你。