排除 RESTful API 错误
由于客户端与 MATLAB® Production Server™ 之间的通信是通过 HTTP 进行的,因此许多错误都由 HTTP 状态代码指示。部署的 MATLAB 函数中的错误使用不同的格式。有关详细信息,请参阅MATLAB 错误的结构体。要查看 RESTful API 的使用情况,请参阅 用于 MATLAB 函数执行的 RESTful API。
HTTP 错误的结构体
{ "error": { "type": "httperror", "code": 404, "messageId": "ComponentNotFound", "message": "Component not found." } } |
HTTP 状态代码
400 - 错误请求
消息 | 描述 |
---|---|
Invalid input | 客户端请求的格式不正确。 |
Invalid JSON | 客户端请求不包含有效的 JSON 表示。 |
nargout missing | 客户端请求未指定包含输出参量的 nargout 。 |
rhs missing | 客户端请求未指定包含输入参量的 rhs 。 |
Invalid rhs | 输入参量不遵循 MATLAB 数据类型的 JSON 表示。有关详细信息,请参阅MATLAB 数据类型的 JSON 表示。 |
403–禁止
消息 | 描述 |
---|---|
The client is not authorized to access the requested component | 客户端没有正确的凭据来发出请求。 |
404-未找到
消息 | 描述 |
---|---|
Function not found | 服务器无法在部署的 CTF 存档中找到 MATLAB 函数 |
Component not found | 服务器无法找到 CTF 存档 |
URI-path not of form '/APPLICATION/FUNCTION' | URL 格式不正确 |
405 - 方法不允许
消息 | 描述 |
---|---|
Bad Method | 方法不允许 |
Method must be POST | 方法不允许 |
Unsupported method | 方法不允许 |
411 - 长度要求
消息 | 描述 |
---|---|
Content-length missing | 内容长度缺失 |
415 - 不支持的媒体类型
消息 | 描述 |
---|---|
<VALUE> is not an accepted content type | JSON 的内容类型不正确。 |
500 - 内部服务器错误
消息 | 描述 |
---|---|
Function return type not supported | 服务器上部署的 MATLAB 函数返回了 MATLAB Production Server 不支持的 MATLAB 数据类型。有关 MATLAB Production Server 支持的数据类型的信息,请参阅 MATLAB 数据类型的 JSON 表示。 |
资源查询与资源状态
资源/服务器状态 | NOT_FOUND | READING | IN_QUEUE | PROCESSING | READY | ERROR | CANCELLED | DELETED / PURGED | UNKNOWN SERVER ERROR |
---|---|---|---|---|---|---|---|---|---|
GET |
|
|
|
|
|
|
|
|
|
POST |
|
|
|
|
|
|
|
|
|
DELETE |
|
|
|
|
|
|
|
|
|
MATLAB 错误的结构体
要解决 MATLAB 错误,请对服务器上部署的 MATLAB 函数进行故障排除。
{ "error": { "type": "matlaberror", "id": error_id, "message": error_message, "stack": [ { "file": file_name1, "name": function_name1, "line": file_line_number1 }, { "file": file_name2, "name": function_name2, "line": file_line_number2 }, ... ] } } |
访问控制允许来源
如果客户端程序从不同的域发出请求,使用 JavaScript® 的客户端程序员需要验证 MATLAB Production Server 实例上是否启用了跨域资源共享 (CORS)。如果未启用 CORS,您可能会收到以下错误消息:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
有关如何启用 CORS 的信息,请参阅 cors-allowed-origins。