まず最初に; この質問は、まだ解決されていない別の質問に似ています: magento soap api への呼び出しはすぐに期限切れになります
私は XMLRPC ベースのクライアント サーバー モジュールに取り組んでいます。Magento ベースのサーバーには、Java ベースのクライアントに公開されるいくつかの API メソッドがあります。クライアントで標準の Java XMLRPC Jar を使用しています。
セッションを取得する「ログイン」呼び出しがあります。次に、これを渡して別の呼び出しを行います。これが(どのように見えるか)有効なセッションを返すことを確認しました。
Object result1 = client.execute("login", ob1);
session = (String) result1;
ただし、このセッションを使用して行う次の呼び出しは、次のように失敗します。
org.apache.xmlrpc.XmlRpcException: Session expired. Try to relogin.
私が確認したこと:
- Magento のセッション タイムアウトを高い値に設定します。
- これは動作しません
- サーバーの時刻設定が正しいことを確認します
- です。
- API ユーザーが Magento で「アクティブ」であることを確認します
- うん。
api_session
テーブルでセッション ハッシュを 確認します- 下記参照。
api_session テーブル
- これには、現在のセッション ハッシュがありません。
- また、エントリは 11 個しかありません。私は少なくとも約50回ログインしました。
- セッション ログ時間は、
select CURRENT_TIME
- 更新: これは無関係です (MySQL は GMT で記録しています)
ここに私が見るものがあります:
mysql> select * from api_session limit 50;
+---------+---------------------+----------------------------------+
| user_id | logdate | sessid |
+---------+---------------------+----------------------------------+
| 5 | 2013-02-01 16:01:49 | 9099b50
| 5 | 2013-02-01 16:02:10 | 7312c1a
| 5 | 2013-02-01 16:05:43 | a6ce30c
+---------+---------------------+----------------------------------+
11 rows in set (0.00 sec)
mysql> select CURRENT_TIME;
+--------------+
| CURRENT_TIME |
+--------------+
| 14:58:03 |
+--------------+