无法从浏览器访问xsjs文件

时间:2013-08-07 15:17:29

标签: sap hana hana-xs

我是SAP HANA的新手,并试图通过webbrowser使用以下网址公开.xsjs文件数据:

hostname:80<instance#>/workspace/session/a00/data/services/retrieveData.xsjs

但是,当我尝试访问它时,我收到以下错误:

  

此链接似乎已损坏我们无法找到您尝试访问的资源。它可能拼写错误或目前不可用

这些是我在项目资源管理器中创建的文件:

MYSCHEMA.hdbschema

schema_name="MYSCHEMA"

trendsData.hdbtable

table.schemaName = "MYSCHEMA";                                                           
table.tableType = COLUMNSTORE;   
table.description = "NewDataSet Order trendsData";

table.columns = [


       {name= "C";   sqlType = NVARCHAR; nullable = true; length=10; },
       {name= "D";   sqlType = VARCHAR;  nullable = true; length=5;  },
       {name= "DU";  sqlType = NVARCHAR; nullable = true; length=20; },
       {name= "SA";  sqlType = DECIMAL;  nullable = true; length=30; },
       {name= "I";   sqlType = DECIMAL;  nullable = true; length=30; },
       {name= "G";   sqlType = DECIMAL;  nullable = true; length=30; },
       {name= "G";   sqlType = DECIMAL;  nullable = true; length=20; },
       {name= "STR"; sqlType = DECIMAL;  nullable = true; length=30; }
        ];
 table.primaryKey.pkcolumns = ["INVENTORY"];

orderId.hdbsequence

schema="MYSCHEMA";     
start_with=2000000;
cycles=false;    
depends_on_table="workspace.session.a00.data::trendData";

retrieveData.xsjs

$.response.contentType="text/html";                                                                    
var output = "Helloworld";                                                                                
var conn  = $.db.getConnection();

var pstmt = conn.prepareStatement("select * from trendData");

var rs    = pstmt.executeQuery();

if (!rs.next())                                                                                   
{
    $.response.setBody( "Failed to retrieve data");
    $.response.status = $.net.http.INTERNAL_SERVER_ERROR;
}

else                                                                                        
{                                                                                            
output=output + "This is the respose from my SQL: "                                                     
+ rs.getString(1);                                                                                
}                                                                                         
rs.close();                                                                                   
pstmt.close();                                                                          
conn.close();                                                                 
$.response.setBody(output);

所有上述文件都已成功提交并激活,但没有任何错误。然而,错误发生在webrowser中。

4 个答案:

答案 0 :(得分:1)

您确定您在浏览器中输入的网址是否已正确构建?

网址应按以下方式构建:

  

服务器:端口/则repository_path / FILE_NAME

错误的路径可能会导致您的问题。请参阅以下示例:

主持人:hanacloud
端口:8000(80 + instance_number)

SAP HANA存储库树
mdo - &gt;
       sap - &gt;
sflight - &gt;
测试 - &gt;
test.xsjs

网址: hanacloud:8000 / mdo / sap / sflight / test / test.xsjs

答案 1 :(得分:1)

您的端口号应为8000而不是80,并确保网络上没有阻止,这通常是个案,特别是在办公室网络中

答案 2 :(得分:0)

您的select语句未指定架构。另外,表的目录名通常是“package name :: table name”。此外,您的表定义有两列具有相同的名称和无效的主键规范。

因此我希望选择失败。作为第一步,我建议尝试

$.response.contentType = "text/plain";
$.response.setBody('hello world');
$.response.status = $.net.http.OK;

一旦运行,您就会知道Web访问是有效的。我的下一步是将所有内容包装成一些try / catch,如此

var eString = "";
try {

    //*
      * your code goes here
      *//

    return;  // do not forget this!
} catch (e) {
    eString = "\nException.toString(): " + e.toString() + "\n";
    var prop = "";
    for (prop in e) {
        eString += prop + ": " + e[prop] + "\n";

    response.status = $.net.http.INTERNAL_SERVER_ERROR;
    response.contentType = "plain/text";
    response.setBody(eString);
    return;
}

response.status = $.net.http.INTERNAL_SERVER_ERROR;
response.contentType = "plain/text";
response.setBody("something went badly wrong");

这样就可以确定代码的确切位置。

答案 3 :(得分:0)

请确保存在.xsaccess和.xsapp文件以及语法。还要忍受文件被激活。