Sapui5 如何摆脱;500内部服务器错误“;使用ui5中间件simpleproxy

Sapui5 如何摆脱;500内部服务器错误“;使用ui5中间件simpleproxy,sapui5,ui5-tooling,Sapui5,Ui5 Tooling,我使用创建了一个SAPUI5应用程序,但现在无法将其连接到OData服务。 因为OData服务的真实url不是公共的,所以我们称之为: http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/ 在我的浏览器中打开它,在最后添加$metadata?sap language=DE,效果很好——我得到了XML元数据文档 以下是我尝试更改以连接到OData服务的文件: 网络应用 manifest.json package.js

我使用创建了一个SAPUI5应用程序,但现在无法将其连接到OData服务。


因为OData服务的真实url不是公共的,所以我们称之为:

http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/
在我的浏览器中打开它,在最后添加
$metadata?sap language=DE
,效果很好——我得到了XML元数据文档


以下是我尝试更改以连接到OData服务的文件:

  • 网络应用
    • manifest.json
  • package.json
  • ui5.yaml
manifest.json

{
  "sap.app": {
    ...
    "dataSources": {
      "oDataService": {
        "uri": "/sap/opu/odata/sap/Z_DOMAIN_SRV/",
        "type": "OData"
      }
    }
  },
  "sap.ui5": {
    ...
    "models": {
      ...
      "": {
        "dataSource": "oDataService",
        "preload": true,
        "settings": {
          "useBatch": false
        }
      }
    },
    ...
  }
}
我还尝试将
“uri”
值更改为实际链接
http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/
,但我期望得到一个
跨原点
错误:

因此,我尝试通过将其添加到我的
包中来设置代理。json

{
  ...
  "devDependencies": {
    "ui5-middleware-simpleproxy": "^0.5.1"
  },
  "ui5": {
    "dependencies": [
      "ui5-middleware-simpleproxy"
    ]
  },
  ...
}
并将其添加到我的
ui5.yaml
文件中:

...
server:
  customMiddleware:
    - name: ui5-middleware-simpleproxy
      mountPath: /sap/opu/odata/sap/Z_DOMAIN_SRV
      afterMiddleware: compression
      configuration:
        baseUri: "http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/"
希望现在
http://localhost:8080/sap/opu/odata/sap/Z_DOMAIN_SRV/$metadata?sap语言=DE

会变成
http://app99.sap.domain.com/sap/opu/odata/sap/Z_DOMAIN_SRV/$metadata?sap语言=DE

这是可行的,但事实并非如此——我只是从上面的截图中得到了错误

知道我遗漏了什么吗?

我真的很想让它能够工作,因为我不想手动启动两台服务器(UI5工具一台,另一台用于代理)。目前我只需要做
ui5服务
,一切都是开箱即用。

ui5.yaml中更改配置后,它工作了。
我不太明白
mountPath
baseUri
之间的关系是如何工作的,以及为什么它是这样工作的,但是一些问题可以通过尝试和错误来解决,比如我的例子:D

...
server:
  customMiddleware:
    - name: ui5-middleware-simpleproxy
      mountPath: /sap/opu/odata/sap
      afterMiddleware: compression
      configuration:
        baseUri: "http://app99.sap.domain.com/sap/opu/odata/sap"

ui5.yaml
中更改配置后,它工作了。
我不太明白
mountPath
baseUri
之间的关系是如何工作的,以及为什么它是这样工作的,但是一些问题可以通过尝试和错误来解决,比如我的例子:D

...
server:
  customMiddleware:
    - name: ui5-middleware-simpleproxy
      mountPath: /sap/opu/odata/sap
      afterMiddleware: compression
      configuration:
        baseUri: "http://app99.sap.domain.com/sap/opu/odata/sap"

自我提醒:可能与此有关我将尝试使用
--h2
,看看是否有更好的结果……不,
--h2
没有解决问题,因为我认为这与路径有关。我不确定您的mountPath、odatauri和baseURI是否都应该在itNote中提供完整的服务self:也许它与此相关我将尝试使用
--h2
,看看是否有更好的结果……不,
--h2
没有解决问题,因为我认为这与路径有关。我不确定您的mountPath、odatauri和baseURI都应该包含完整的服务