点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
对于我们开发的应用程序,我需要在V2中公开OData,我发现我们可以使用v2适配器。
我使用了" @ sap/cds-odata-v2-adapter-proxy",但是它给出了内部服务器错误,并且没有相关的应用程序日志。
>我不确定服务器中是否缺少某些内容。 js。 您能帮忙吗?
server.js
"使用严格"; const https = require(" https"); const port = process.env.PORT || 3000; const server = require(" http")。createServer(); const cds = require(" @ sap/cds"); //为XSA UAA和HDBEXT中间件初始化Express App const xsenv = require(" @ sap/xsenv"); const xssec = require(" @ sap/xssec"); const xsHDBConn = require(" @ sap/hdbext"); const express = require(" express"); const odatav2proxy = require(" @ sap/cds-odata-v2-adapter-proxy") https.globalAgent.options.ca = xsenv.loadCertificates(); global .__ base = __dirname +"/"; global .__ uaa = process.env.UAA_SERVICE_NAME; var app = express(); var hanaOptions = xsenv.getServices({ 哈娜:{ 计划:" hdi共享" } }); //CDS OData V4处理程序 var options = { 种类:" hana", logLevel:"信息" }; cds.connect(选项); var odataURL ="/img/catalog"; //主应用 cds.serve(" gen/csn.json",{ crashOnError:错误 }) .at(odataURL) .with(require(" ./lib/handlers")) .in(app) .catch((err)=> { console.log(err); process.exit(1); }); //将任何重定向到服务根 app.get("/",(req,res)=> { res.redirect(odataURL); }); app.use(odatav2proxy({port})); require(" ./router")(应用程序,服务器); //启动服务器 server.on(" request",app); server.listen(port,function(){ console.info(`HTTP Server:$ {server.address()。port}`); });
谢谢
请尝试使用自述文件中的编码: cds-odata-v2-adapter-proxy 。 当您在package中定义此依赖项时,CAP将自动包含@ sap/xssec。
-OData V4服务是否按预期工作? 即/catalog
-您使用哪个版本的CDS OData v2适配器代理?
-您能否将server.js简化为仅需的命令:
即删除行...
xsHDBConn = require(" @ sap/hdbext");
https.globalAgent.options.ca = xsenv.loadCertificates(); < br> global .__ base = __dirname +"/"; global .__ uaa = process.env.UAA_SERVICE_NAME;
-是否有机会设置异常断点,以提示发生错误的地方?
-process.env.XS_APP_LOG_LEVEL =" debug"是否提供更多的日志结果?
-是否有可用的堆栈跟踪?
-CDS模型的外观如何?
感谢Oliver的回复。
1)是,它按预期工作。2)我使用" @ sap/cds-odata-v2-adapter-proxy":"最新"
3)是,但仍然是相同的问题。
4)无法设置断点,因为它仅是cat-service.cds的定义
5)是,我尝试过,我得到了以下日志
6)一个非常简单的定义也不起作用。
实体KNVP @readonly作为KNVP上的投影;
我正在使用URL
https://........hana.ondemand.com/v2/catalog/CV_MY_CUSTOMER
我为您提供了不同的型号 :
-您具有用于OData v4的cds.serve(" gen/csn.json")
-您有odatav2proxy({port}),它隐式使用模型" all"。 模型"全部"触发db和srv文件夹中所有CDS实体的编译...
因此,您似乎设法以某种方式设法获得了有效的gen/csn.json,但是CDS实体的编译失败。 (请参阅您的屏幕截图)。 看起来"正在使用"语句是错误的,因为它试图查找模块" ..db/data-model'\ ncat-service.cds ...
能否请您致电cds build/compile检查所有CDS文件的有效性,并修复CDS错误?
为了对齐OData服务v2和v4,还应该对代理使用" gen/csn.json",如下所示:
你能检查一下吗? 谢谢。
嗨,格雷格,
感谢您的回复。 我也在做类似的事情。 只是更改了以下路径。 不知道我还缺少什么。
当我运行/v2时,仍然显示内部服务器错误/catalog
一周热门 更多>