суботу, 26 вересня 2015 р.

Default password for SYSMAN

     Хто не в курсі, всі версії Oracle DB тепер можна безкоштовно встановити на свій ПК, якщо використовувати базу не в комерційних цілях.

     Після встановлення бази даних Oracle потрібно виконати деякі налаштування. Для цього можна використасти web-кліент Oracle Enterprise Manager Database Express увівши в браузері http://localhost:port_number/em.

     В доцументації пишуть, що для входу в менеджер потрібно ввести користувача SYSMAN, пароль для якого ви повинні були задати під час встановлення бази даних (docs.oracle.com). Але я такого не пам'ятаю. Задавав двох системних користувачів SYS i SYSTEM, але не SYSMAN.

     Довго рився в інтернеті, але так і не знайшов вирішення. На форумі Oracle  тема з такою назвою нічого крім «розумних відповідей» не дала (community.oracle.com):

This thing called the Internet - something called Google.

   Зрештою, довго вдивляючись в діалог для вводу імені-паролю,  ввів дані системного користувача, який був ініціалізований під час встановлення - один з двох,  SYS або SYSTEM. Працює.

понеділок, 14 вересня 2015 р.

ORA-12705: cannot access NLS data files or invalid environment specified

     Можлива причина, особливо для неангломовних користувачів, змінна середовища NLS_LANG може містити неприпустиме значення мовних налаштувань (мова, територія, набір символів (language, territory, or character set)).

     Можливе вирішення проблеми - програмна установка локальних налаштувань, наприклад, десь в класі ініціалізації роботи з базою даних:

 
1
static {Locale.setDefault(Locale.ENGLISH);}


     Інші ігри із ключем NLS_LANG в реєстрі \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE для моєї кириличної системи нічого не дали. Серед порад зустрічав:
- просто переіменувати ключ NLS_LANG;
- змінити його значення на AMERICAN_AMERICA.CL8MSWIN1251.

Spring, Hibernate, Maven: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver

     Відповідь взята з форуму stackoverflow.com.

     У вас виникла помилка, спричинена відсутністю драйвера oracle.jdbc.OracleDriver:

type Exception report
message Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

вівторок, 1 вересня 2015 р.

Стилізація коду для повідомлення на блозі

     Щоб опублікований код виглядав красиво, можна скористатися двома опціями:

- gist -це проект на GitHub. Там можна не реєструючись вставити шматок коду, натиснути кнопочку і отримати посилання, яке буде вести на репозитарій, де буде збережено стилізований код. Посилання вставляєте в повідомлення на блозі. Питання в тому, скільки часу цей код буде зберігатись на їх сервері?

- hilite.me - цим буду користуватись я. Потрібно вставити фрагмент коду, натиснути на кнопку HighLight! і скопіювати стилізований HTML, який вставляєте в свій блог. Таким чином, у вас зберігається весь код, а не на чужому сервері.

Spring MVC: Доступ до статичних ресурсів

     Статичні ресурси - це елементи веб-програми, які є статичними. Ось так просто. Тобто, це файли, які не змінюються протягом виконання програми, такі як CSS-стилі,  HTML-сторінки, скрипти JavaScript, зображення і т.п. Все б нічого, але, виявляється, Spring MVC не вміє їх обробляти, якщо йому в цьому не допомогти.

     Справа в тому, що по-замовчуванню, статичні запити обробляє так званий DefaultServlet, який створюється самим сервером і який привязаний до адреси /, тобто до кореневої папки веб-програми (web application root). Якщо програма отримала запит (request) і для нього зареєстровано відповідний сервлет в файлі web.xml, то цей сервлет буде викликано для обробки запиту. А коли відповідного сервлету не зареєстровано, запит буде оброблено згаданим "сервлетом по-замовчуванню" (java-allandsundry.com). Це він знає, як обробляти запити до статичних ресурсів.

     Але згідно концепції  Spring MVC феймворку, коренева папка веб-програми закріплена за так званим фронт-контролером, який називається DispatcherServlet (див. метод getServletMappings()):


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MusicBoxDispatcherServlet 
       extends AbstractAnnotationConfigDispatcherServletInitializer {

 @Override
 protected String[] getServletMappings() {
  return new String[] { "/" };
 }
 
 @Override
 protected Class<?>[] getRootConfigClasses() {
  return new Class<?>[] { RootConfig.class };
 }
 
 /*
  * DispatcherServlet loads beans containing web components
     * such as controllers, view resolvers, and handler mappings
     * that are defined in the SpringAppConfig configuration 
     * class (using Java configuration).
  */
 @Override
 protected Class<?>[] getServletConfigClasses() {
  return new Class<?>[] { SpringAppConfig.class };
 }

}