点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我正在创建一个在SAP CF上运行的Java CAP应用程序,并且在其他MTA中有一个UI模块。 我正在尝试将UI模块与Java CAP应用程序集成。 因此,我认为这是跨MTA依赖关系和目标场景。
我在SCN和SAP博客中搜索了一些答案,并尝试了所有可能的方法。 但是没有一个。
这是我设置UI应用程序的方式。
- 1。创建一个MTA并选择"使用HTML5应用程序存储库"选项。
- 2。然后我创建HTML5模块,结构是这样的
- 3.mta.yaml添加了跨MTA依赖项
ID:演示 _schema-version:" 2.1" 参数: deploy_mode:html5-repo 版本:0.0.1 模块: -名称:demo-approuter 类型:approuter.nodejs 路径:demo-approuter 参数: 磁盘配额:256M 记忆体:256M 要求: -名称:demo_html5_repo_runtime -名称:dest_demo -名称:uaa_demo -名称:demo_ui_deployer 类型:com.sap.html5.application-content 路径:demo_ui_deployer 要求: -名称:demo_html5_repo_host 构建参数: 要求: -名称:demo_ui 工件: -'./*' 目标路径:资源/demo_ui -名称:demo_ui 类型:html5 路径:demo_ui 构建参数: 制造商:定制 命令: -npm安装 -npm运行构建 支持的平台:[] 构建结果:dist 要求: -名称:cap-config 组:目的地 特性: 名称:servicegoals 网址:"〜{url}" forwardAuthToken:true 资源: -名称:demo_html5_repo_runtime 参数: 服务计划:应用程序运行时 服务:html5-apps-repo 类型:org.cloudfoundry.managed-service -名称:demo_html5_repo_host 参数: 服务计划:应用托管 服务:html5-apps-repo 类型:org.cloudfoundry.managed-service -名称:uaa_demo 参数: 路径:./xs-security.json 服务计划:应用 服务:xsuaa 类型:org.cloudfoundry.managed-service -名称:dest_demo 参数: 服务计划:精简版 服务:目的地 类型:org.cloudfoundry.managed-service -名称:cap-config 类型:配置 参数: provider-nid:mta provider-id:" myplan-goals-cf-srv:srv_api" 版本:"> = 0.0.0"
-
UI模块中的
- 4.xs-app.json
{ " welcomeFile":"/index.html", " authenticationMethod":"路由", "登出": { " logoutEndpoint":"/img/do/logout" }, "路线":[{ " source":" ^/servicegoals/(.*)$", " target":" $ 1", " authenticationType":" xsuaa", "目的地":"服务目标", " csrfProtection":false },{ " source":" ^(。*)$", " target":" $ 1", " service":" html5-apps-repo-rt", " authenticationType":" xsuaa" }] }
- 5。运行应用程序时出错
我已经检查了approuter的登录
{" writing_at":" 2020-07-08T08:34:44.680Z"," writing_ts":1594197284680000000," csn_component":"-"," correlation_id":" kcd3whfs"," type":" log" ," logger":" nodejs-logger"," layer":"/目标服务"," level":"错误"," container_id":" 10.0.137.16"," component_type":"应用程序"," component_id" :" e4d12e6f-de51-45fc-8ee8-444ccde1a64b"," component_name":" demo-approuter"," component_instance":-1," source_instance":-1," organization_id":""," organization_name" :" "," space_id":" "," space_name":" "," context_id":" kcd3whfs"," msg":"从目标服务检索目标服务目标时出错。HTTP 状态码:404"}
{" writing_at":" 2020-07-08T08:34:44.680Z"," writing_ts":1594197284680000000," csn_component":"-"," correlation_id":" 5f59f1d6-27d5-46b7-68e4-39206cbd98b9" ," type":" log"," logger":" nodejs-logger"," layer":"/img/Handler"," level":"错误"," container_id":" 10.0.137.16"," component_type": " application"," component_id":" e4d12e6f-de51-45fc-8ee8-444ccde1a64b"," component_name":"演示应用路由器"," component_instance":-1," source_instance":-1," organization_id":" < org_id>"," organization_name":""," space_id":" "," space_name":" "," request_id":" 5f59f1d6-27d5-46b7-68e4-39206cbd98b9", " msg":"获取对/aucomtridemo_ui/servicegoals/odata/v4/mpgoals/$ metadata的请求,状态为500-从目标服务检索目标服务目标时出错。HTTP状态码:404"}
有人知道是否存在将ui5模块和CAPM应用程序集成的正确方法或模板?
谢谢。
Tri
(11.2 kB)
嗨,Minh,
您的要求配置有误:
应该将其放在您的演示应用程序路由器下
尝试一下,我认为您很好。
嗨,@ triminhle,
发布问题并获得可帮助您解决问题的响应时,您需要将答案标记为"已接受"以关闭该线程。
嗨,
您是对的,可以通过跨MTA依赖关系执行此操作,但是您可能还需要考虑更简单的选项:
Hi Minh,
错误表示我们已经解决了您原来的问题。
现在有了新问题,您似乎为2个MTA使用了不同的XSUAA服务。 如果您确实跨MTA,则应确保两个MTA都使用相同的XSUAA服务。 您可以像下面这样更新当前的MTA以使用myplan-goals-cf的uaa的uaa:
当然,您可以选择相反的操作(在另一个MTA中执行此操作),我只是在这里说明如何使用
感谢您澄清Marius!
我不得不问一下,因为到目前为止,我在几乎每个项目中都使用这种方法。 通常,在一个MTA中,开发工作从小规模开始且易于管理,但是在整个过程中并不会一直这样。 :D
一周热门 更多>