带有Html5 App Repo和Approuter的Cloud Foundry上的MTA

2020-08-15 17:44发布

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

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


嗨,SAP!

我正在尝试使用 nodejs html5模块在云铸造厂上构建全栈应用。 我首先创建了一个没有html5应用程序回购的 MTA ,并且效果很好(特别是路由,这个问题将要解决的问题)。 然后,我创建了一个带有html5应用程序仓库的 MTA (在创建html5模块时选中了该复选框)以利用它,现在路由到我的nodejs-backend-module不再起作用。 总是存在内部服务器错误。

我已经在sap帮助站点上阅读到,当使用html5 app repo和approuter时,不支持属性" destination"(我在没有html5 app repo的mta中具有将请求转发到模块的属性)。 那么我该如何将请求转发到后端模块?

以下显示了具有到html5应用程序仓库的路由的approuter。 当我添加带有目的地的第二条路线时,它不再起作用。

 {
 " welcomeFile":"/index.html",
 " authenticationMethod":"路由",
 "登出": {
 " logoutEndpoint":"/img/do/logout"
 },
 "路线":[{
 " source":" ^/(。*)$",
 " target":" $ 1",
 " service":" html5-apps-repo-rt",
 " authenticationType":" xsuaa"

         },{//无效的部分
 " source":" ^/api/([[a-z] +)",
 " target":"/img/$ 1",
 "目标":" nodejs_repo_api"
 }
 ]
 }
 

这是mta.yaml文件:

 ID:mta_test_modules_repo
 _schema-version:" 2.1"
 参数:
   deploy_mode:html5-repo
 版本:0.0.1
 模块:
   -名称:mta_test_modules_repo_appRouter
     类型:approuter.nodejs
     路径:mta_test_modules_repo_appRouter
     参数:
       磁盘配额:256M
       记忆体:256M
     要求:
       -名称:mta_test_modules_repo_html5_repo_runtime
       -名称:uaa_mta_test_modules_repo

   -名称:mta_test_modules_repo_ui_deployer
     类型:com.sap.html5.application-content
     路径:mta_test_modules_repo_ui_deployer
     要求:
       -名称:mta_test_modules_repo_html5_repo_host
     构建参数:
       要求:
         -名称:destination_service_frontend
           工件:
             -'./*'
           目标路径:resources/destination_service_frontend

   -名称:nodejs_repo
     类型:nodejs
     路径:nodejs_repo
     提供:
       -名称:nodejs_repo_api
         特性:
           网址:" $ {default-url}"
     
   -名称:destination_service_frontend
     类型:html5
     路径:destination_service_frontend
     参数:
       磁盘配额:500M
       内存:500M
     构建参数:
       制造商:咕unt声
     要求:
       -名称:nodejs_repo_api
         组:目的地
         特性:
           名称:nodejs_repo_api
           网址:"〜{url}"
           forwardAuthToken:true
       -名称:uaa_mta_test_modules_repo
 
 资源:
   -名称:mta_test_modules_repo_html5_repo_runtime
     参数:
       服务计划:应用程序运行时
       服务:html5-apps-repo
     类型:org.cloudfoundry.managed-service

   -名称:mta_test_modules_repo_html5_repo_host
     参数:
       服务计划:应用托管
       服务:html5-apps-repo
     类型:org.cloudfoundry.managed-service

   -名称:uaa_mta_test_modules_repo
     参数:
       路径:./xs-security.json
       服务计划:应用
       服务:xsuaa
     类型:org.cloudfoundry.managed-service

   -名称:dest_mta_test_modules_repo
     参数:
       服务计划:精简版
       服务:目的地
     类型:org.cloudfoundry.managed-service
 

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

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


嗨,SAP!

我正在尝试使用 nodejs html5模块在云铸造厂上构建全栈应用。 我首先创建了一个没有html5应用程序回购的 MTA ,并且效果很好(特别是路由,这个问题将要解决的问题)。 然后,我创建了一个带有html5应用程序仓库的 MTA (在创建html5模块时选中了该复选框)以利用它,现在路由到我的nodejs-backend-module不再起作用。 总是存在内部服务器错误。

我已经在sap帮助站点上阅读到,当使用html5 app repo和approuter时,不支持属性" destination"(我在没有html5 app repo的mta中具有将请求转发到模块的属性)。 那么我该如何将请求转发到后端模块?

以下显示了具有到html5应用程序仓库的路由的approuter。 当我添加带有目的地的第二条路线时,它不再起作用。

 {
 " welcomeFile":"/index.html",
 " authenticationMethod":"路由",
 "登出": {
 " logoutEndpoint":"/img/do/logout"
 },
 "路线":[{
 " source":" ^/(。*)$",
 " target":" $ 1",
 " service":" html5-apps-repo-rt",
 " authenticationType":" xsuaa"

         },{//无效的部分
 " source":" ^/api/([[a-z] +)",
 " target":"/img/$ 1",
 "目标":" nodejs_repo_api"
 }
 ]
 }
 

这是mta.yaml文件:

 ID:mta_test_modules_repo
 _schema-version:" 2.1"
 参数:
   deploy_mode:html5-repo
 版本:0.0.1
 模块:
   -名称:mta_test_modules_repo_appRouter
     类型:approuter.nodejs
     路径:mta_test_modules_repo_appRouter
     参数:
       磁盘配额:256M
       记忆体:256M
     要求:
       -名称:mta_test_modules_repo_html5_repo_runtime
       -名称:uaa_mta_test_modules_repo

   -名称:mta_test_modules_repo_ui_deployer
     类型:com.sap.html5.application-content
     路径:mta_test_modules_repo_ui_deployer
     要求:
       -名称:mta_test_modules_repo_html5_repo_host
     构建参数:
       要求:
         -名称:destination_service_frontend
           工件:
             -'./*'
           目标路径:resources/destination_service_frontend

   -名称:nodejs_repo
     类型:nodejs
     路径:nodejs_repo
     提供:
       -名称:nodejs_repo_api
         特性:
           网址:" $ {default-url}"
     
   -名称:destination_service_frontend
     类型:html5
     路径:destination_service_frontend
     参数:
       磁盘配额:500M
       内存:500M
     构建参数:
       制造商:咕unt声
     要求:
       -名称:nodejs_repo_api
         组:目的地
         特性:
           名称:nodejs_repo_api
           网址:"〜{url}"
           forwardAuthToken:true
       -名称:uaa_mta_test_modules_repo
 
 资源:
   -名称:mta_test_modules_repo_html5_repo_runtime
     参数:
       服务计划:应用程序运行时
       服务:html5-apps-repo
     类型:org.cloudfoundry.managed-service

   -名称:mta_test_modules_repo_html5_repo_host
     参数:
       服务计划:应用托管
       服务:html5-apps-repo
     类型:org.cloudfoundry.managed-service

   -名称:uaa_mta_test_modules_repo
     参数:
       路径:./xs-security.json
       服务计划:应用
       服务:xsuaa
     类型:org.cloudfoundry.managed-service

   -名称:dest_mta_test_modules_repo
     参数:
       服务计划:精简版
       服务:目的地
     类型:org.cloudfoundry.managed-service
 
付费偷看设置
发送
11条回答
路亽曱_Ryan
1楼-- · 2020-08-15 17:53

嗨,奥拉,

是的,我也遇到了这个问题,并通过更改target属性以相同的方式解决了该问题。

您还可以调试approuter并检查解析目标和目标之后生成的URL。

cf set-env App_Router_App_Name XS_APP_LOG_LEVEL DEBUG

cf restage App_Router_App_Name

用appRouter应用程序替换App_Router_App_Name。

执行上述2条命令后再次运行该应用程序,并检查appRouter应用程序的日志。

此致

Puneet

大简至美
2楼-- · 2020-08-15 17:55

嗨,

我遇到了同样的问题,只是错过了应用路由器对目标服务的要求。 因此,在mta.yaml中添加以下行为我修复了该问题:

 ID:mta_test-cf
 _schema-version:" 2.1"
 参数:
   deploy_mode:html5-repo
 版本:0.0.1
 模块:
   -名称:mta_test-cf_appRouter
     #....
     要求:
       -名称:mta_test-cf_html5_repo_runtime
       -名称:uaa_mta_test-cf
       -名称:dest_mta_test-cf#<--------------------此行修复了它
     #...
 资源:
   #....
   -名称:dest_mta_test-cf#<------------------------名称需要与此匹配
     参数:
       服务计划:精简版
       服务:目的地
     类型:org.cloudfoundry.managed-service

 

干杯

Patrick

Tong__Ming
3楼-- · 2020-08-15 17:51

在测试生成的UI5应用程序时,我也遇到了"内部服务器错误"。 我发现这是因为mta.yaml文件中的uaa资源配置错误。 我将其更改为以下内容:

资源:
   -名称:myMTAApp-uaa
     类型:org.cloudfoundry.managed-service
     参数:
       路径:./xs-security.json
       服务计划:应用
       服务:xsuaa
 

如果这样做没有帮助,则应检查CloudFoundry中的日志。 日志将提供有关"内部服务器错误"的更多详细信息。

Kr,Wouter

ZJXianG
4楼-- · 2020-08-15 18:10

嗨,

我解决了内部服务器错误,并通过上述评论/回答将路由路由至我的nodejs-backend-module。 但是,html5应用程序存储库中不会加载html5模块的i18/model/css等文件夹中的静态内容。 没有html5应用程序存储库,它将按预期工作。

尝试通过在xs-app.json的第一条路由中添加" localDir",但无济于事。

请使用任何指针。

谢谢

Ravindra

软件心理学工程师
5楼-- · 2020-08-15 17:52

您好 Paige

I 我也面临这个问题。 如果您解决了,请告诉我。

谢谢!

最诚挚的问候,

Anuj

一周热门 更多>