我将csv文件中的一些用户导入到liferay中。我对Hypersonic sql一无所知。所以考虑从.net。
插入用户我尝试调用getUserById()进行测试。它给了我这个错误。
操作updateUser1中的RPC消息updateUserRequest1具有无效的正文名称updateUser。它必须是updateUser1
知道怎么做吗?或任何其他更好的方法将用户插入liferay。我知道sql server和C#,没有java
答案 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
希望它有所帮助。