具有本地后端本地设置的UI5应用

2020-08-21 11:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在尝试使用本地后端(...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试使用本地后端(在本例中为SAP Netweaver Gateway后端)在Cloud Foundry上为UI5应用程序设置本地开发环境。 我使用Visual Studio代码。

我正在使用Yeoman easy-ui5 模板来生成我的应用程序(带有目标 platform =" Application Router @ Cloud Foundry)。

我使用以下每个CF服务的实例:

  • 目的地,以使用通过Cloud Connector指向本地系统的目的地
  • xsuaa,用于身份验证
  • 连接性,以便能够使用云连接器

我使用default-env.json文件(更方便,并且没有使用.env文件(如easy-ui5模板所期望的那样)为approuter提供服务实例定义(通过VCAP_SERVICES env变量)。 需要npm dotenv软件包。

我在xs-app.json文件中使用两条路由:

 {
   " welcomeFile":"/index.html",
   "路线":[
     {
       " source":" ^/GW(。*)$",
       " target":" $ 1",
       "目的地":"网关"
     },
     {
       " source":" ^/(。*)$",
       " target":" $ 1",
       " localDir":" webapp"
     }
   ]
 }
 

但是,每当我尝试使用/GW路由时,都会收到502 Bad Gateway错误。

它在以下两种情况下确实有效:

  • 如果我使用" Internet"目标而不是"本地"目标(在这种情况下,不需要连接服务实例)。 在本地运行approuter时,我可以从后端成功访问数据
  • 如果我将应用程序部署到Cloud Foundry(但很明显我不想在任何时候进行测试...)

我想让它正常工作吗?

感谢您的帮助,

Théo

1条回答
何必丶何苦呢
2020-08-21 11:45

您好塞巴斯蒂安(ThéoSébastien)

我认为这里存在误解。

要在本地测试目标,您的目标需要直接指向本地系统-因此,您将拥有一个default-env.json,其目标是一个LAN地址(即:本地主机)。 而座舱中的实际目的地应配置为指向云连接器注册的地址。 换句话说,您不能在两种情况下都使用单个目标位置设置。

以下是示例代码,可用于default-env.json中的目标位置:

 {
     "目的地":[{
         " name":" GATEWAY",
         " url":" http://localhost:8080",
         " forwardAuthToken":true
     }]
 }
 

这里有几个区别:首先,Cloud Foundry中的目标是一个服务实例,该实例在运行时可用并绑定到您的应用程序。 而在LAN上,您没有该目标服务来呼叫和确定什么是本地系统以及什么是Internet系统。 因此,在本地目标中进行这种设置实际上根本没有任何意义。

第二,本地目标可能指向并寻址通过本地DNS解析器解析到您的云连接器主机的主机。 但是我不能向您保证这将模仿SCP向云连接器发出的传入请求-因此我不确定这是否会奏效。

假设您尝试在本地重现SSO方案,建议您继续进行部署,并使用部署应用程序的真实云子帐户对其进行测试。 这使我想到了第三个原因:您的云连接器将"检查"云子帐户并加载用于SSO的应用程序。 因此,在某些SSO场景中,您将无法使用这种方法进行测试。

我认为,本地测试对于开发人员的单元测试有意义;而集成测试则更适合 适用于SCP中的非生产性帐户-在转到生产性帐户之前。 我的观点是,在执行单元测试时,SSO场景不是开发过程的一部分,可能稍后会由另一个团队/阶段进行处理。

希望这会有所帮助。

最好的问候,
伊万

一周热门 更多>