2013-08-07 103 views
1

访问xsjs文件我新的SAP HANA,并试图通过与以下URL网页浏览器,露出.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。

回答

1

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

的URL应该建立以下列方式:

服务器:端口/则repository_path/FILE_NAME

一个错误的路径可能会导致您的问题。请看下面的例子:

主机:hanacloud
端口:8000(80 + INSTANCE_NUMBER)

SAP HANA的版本树
MDO - >
                       树液 - >
                                              SFLIGHT - >
                                                                           测试 - >
                                                                               个                    test.xsjs

网址:hanacloud:8000/MDO/SAP/SFLIGHT /检验/试验。xsjs

1

你的端口号应该是8000,而不是80,并确保不堵塞网络,通常情况下,上,尤其是在办公网络

0

你的SELECT语句不指定模式。另外,表格的目录名称通常是“包名称::表格名称”。此外,您的表定义具有两个具有相同名称和无效主键规范的列。

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

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

一旦你得到这个运行,你知道,在网络接入工程。我的下一步是将所有东西都包装成一些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"); 

然后,这将允许查明您的代码的确切位置。

0

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