第一; 这个问题类似于另一个尚未解决的问题:call to magento soap api expires immediate
我正在研究基于 XMLRPC 的客户端-服务器模块。基于 Magento 的服务器有几个 API 方法暴露给基于 Java 的客户端。我在客户端中使用标准的 Java XMLRPC Jars。
我有一个检索会话的“登录”调用。然后我将它传递给不同的调用。我检查了这是否返回(看起来像)一个有效的会话。
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 |
+--------------+