XS Advanced-Node.js模块-HDB连接错误" ConnectionManager"

2020-09-03 10:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在安装Hana 2.0之...

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

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


嗨,

在安装Hana 2.0之后,出现此错误。

过去,该项目运行良好,此后我们没有进行任何更改。

错误:无法连接到任何主机:[undefined:NaN-连接ECONNREFUSED 127.0.0.1]
    在cannotNotOpenConnectionError(/HANA/usr_sap/hana1/xs/ea_data/hana1/executionroot/1277e046-fc5f-4835-b1d0-9927e6ed978a/app/node_modules/hdb/lib/protocol/ConnectionManager.js:130:13)
    在ConnectionManager._openConnectionToHost(/HANA/usr_sap/hana1/xs/ea_data/hana1/executionroot/1277e046-fc5f-4835-b1d0-9927e6ed978a/app/node_modules/hdb/lib/protocol/ConnectionManager.js:43:15)
    在/HANA/usr_sap/hana1/xs/ea_data/hana1/executionroot/1277e046-fc5f-4835-b1d0-9927e6ed978a/app/node_modules/hdb/lib/protocol/ConnectionManager.js:56:10
    在Socket.onerror(/HANA/usr_sap/hana1/xs/ea_data/hana1/executionroot/1277e046-fc5f-4835-b1d0-9927e6ed978a/app/node_modules/hdb/lib/protocol/Connection.js:168:5)
    在Socket.g(events.js:291:16)
    在emitOne(events.js:96:13)
    在Socket.emit(events.js:188:7)
    在emitErrorNT(net.js:1276:8)
    在_combinedTickCallback(内部/进程/next_tick.js:74:11)
    在process._tickCallback(internal/process/next_tick.js:98:9)

任何想法是什么原因?

4条回答
callcenter油条
2020-09-03 11:29 .采纳回答

你好德克,

我假设您使用的是SAP提供的标准npm软件包,并且您想使用SAML身份验证。 SAP更新了其用于HANA2的一些node.js模块。 您需要package.json具有以下依赖项

"依赖项":{
" express":"〜4.14", " passport":"〜0.3.2", " sap-hdbext":" 4.2.0", " sap-xssec":" 0.9.1", " sap-xsenv":" 1.2.4", " sap-xsjs":"最新的" }

要实现您的目标,您必须在server.js(或类似文件)中进行如下身份验证:

"使用严格";
 var port = process.env.PORT ||  3000,
 服务器= require(" http")。createServer(),
 express = require(" express"),
 app = express(),
 xssec = require(" sap-xssec"),
 xsjs = require(" sap-xsjs"),
 xsenv = require(" sap-xsenv"),
 护照= require(" passport"),
 xsHDBConn = require(" sap-hdbext");

/**
  * JSON WEB令牌认证
  */
//配置HANA
 var options = Object.assign({redirectUrl:"/index.xsjs"},
 xsenv.getServices({
 uaa:{标签:" xsuaa"},
 hana:{标签:" hana"}
 })
 );

//验证模块配置
 password.use(" JWT",新的xssec.JWTStrategy(options.uaa));

//对每个请求使用此身份验证模式
 app.use(
 Passport.authenticate(" JWT",{会话:false}),
 xsHDBConn.middleware(options.hana)
 );

//启动服务器
 var xsjsApp = xsjs(options);
 app.use(xsjsApp);
 app.listen(port);
 

您现在也可以使用SAML令牌和oData。