2015-08-12 2 views
0

У меня есть следующий код, чтобы подключить приложение к базе данных DB2:VCAP_SERVICES возвращают нуль

public static Connection init() { 
    String VCAP_SERVICES = System.getenv("VCAP_SERVICES"); 
    Connection con = null; 
    if (VCAP_SERVICES != null) { 
     JSONObject vcap; 
     try { 
      vcap = (JSONObject) JSON.parse(VCAP_SERVICES); 
      if(vcap.get("sqldb") != null) {     
       con = initSQLDataBase(); 
      } 
     } catch(IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
    return con; 
} 

Моя проблема заключается в том, что она никогда не делать если таковые потому что System.getenv («VCAP_SERVICES») возвращает всегда null.

VCAP_SERVICES существует в Bluemix, и я могу подключить свою базу данных в плагине разработки баз данных для Eclipse, поэтому я не знаю, что не так в моем коде.

Может кто-нибудь мне помочь?

Большое спасибо и жаль моего бедного английского.

[EDIT]: Проблема решена. Это было проблемой в другом месте кода. Сожалею.

+0

Можете ли вы подтвердить ваше приложение работает на Bluemix? Эта переменная среды не будет существовать при локальном запуске приложения в Eclipse. –

ответ

1

Да, не похоже, что у вас есть ключ, определенный для получения SQLDB. Там очень подробный фрагмент кода по ссылке ниже, который показывает вам, как разобрать VCAP услуги:

https://www.ng.bluemix.net/docs/services/SQLDB/index.html#parse-vcap-in-java

+0

Спасибо за ответ, но моя проблема в том, что System.getevn ("VCAP_SERVICES") возвращает значение null, а не синтаксический анализ. Это похоже на то, что приложение не было ослеплено базой данных, но в bluemix оно кажется ослепленным. –

+0

Попробуйте добавить что-то подобное, чтобы обеспечить содержимое VCAP_SERVICES: 'writer.println (« VCAP_SERVICES content: »+ VCAP_SERVICES); – RandalAnders

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