2013-08-07 6 views
1

Я новичок в SAP HANA и пытаюсь выставить данные .xsjs файлов через веб-браузер со следующей 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); 

Все вышеперечисленные файлы были успешно переданы и активируется с любой ошибки. Тем не менее, ошибка возникает в веб-браузере.

ответ

1

Вы уверены, что URL-адрес, который вы набрали в браузере, правильно построен?

URL должны быть построены следующим образом:

сервер: порт/repository_path/имя_файла

Неправильный путь может быть причиной проблемы.Пожалуйста, смотрите пример ниже:

хозяина: hanacloud
порт: 8000 (80 + instance_number)

SAP HANA Repository дерево:
МДО ->
                        сок ->
                                              sflight ->
                                                                         тест ->
                                                                                                    test.xsjs

URL: hanacloud: 8000/МДО/сок/sflight/тест/тест.xsjs

1

Ваш номер порта должен быть 8000 вместо 80 и убедитесь, что не блокируется в сети, которая обычно бывает, особенно в офисной сети

0

Ваш оператор выбора не определяет схему. Кроме того, имя каталога в таблице обычно называется «имя пакета :: имя таблицы». Кроме того, определение таблицы имеет два столбца с одинаковым именем и недопустимую спецификацию первичного ключа.

Таким образом, я ожидал бы, что выбор не удастся. В качестве первого шага я бы предложил попробовать

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

Как только вы его запустили, вы знаете, что работает веб-доступ. Мой следующий шаг должен был бы обернуть все в некоторые пытаются/улова, как так

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 и синтаксис. Также выдержите, что файлы активированы.

 Смежные вопросы

  • Нет связанных вопросов^_^