0

csvファイルにliferayにインポートするユーザーがいます。極超音速SQLについてはわかりません。そこで、.netからユーザーを挿入することを考えました。

getUserById()を呼び出してテストしてみました。このエラーが発生します。

オペレーションupdateUser1のRPCメッセージupdateUserRequest1に無効な本文名updateUserがあります。updateUser1である必要があります

これを行う方法はありますか?または、ユーザーをliferayに挿入するためのその他のより良いアプローチ。私はSQLサーバーとC#を知っていますが、Javaはありません

4

2 に答える 2

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 の生成されたプロキシ クラスには別の問題がありますが、同じ方法で修正できます。

これ以外にもいくつかの落とし穴に遭遇したため、このブログ投稿を作成しました。必要な場合は、完全な VS2010 .Net ソリューションへのリンクがあります。幸運を。

于 2011-10-20T01:16:06.417 に答える
0

最初に、.netプロジェクトの特定のWebサービスにWeb参照を追加する必要があります。特にPortal_UserServiceWebサービスを探しているユーザーの場合。テスト目的で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ドキュメントへの参照もあります。メソッドの呼び出しでさらに問題が発生した場合は、そこでメソッドを検索できます。

Liferay6.0.5APIポータルサービス

それが役に立てば幸い。

于 2011-08-04T21:32:46.133 に答える