2014-03-20 2 views
3

Я создал веб-приложение на основе Grails, и он сбой при запуске, если я попытаюсь сохранить что-либо в файле BootStrap.groovy. Если я закомментирую все операторы save() в файле BootStrap.groovy, тогда приложение запустится, и все таблицы будут созданы успешно.Grails 2.3 класс домена save сбой приложение

Вот мой BootStrap.groovy файл:

class BootStrap 
{ 
    def init = { ServletContext context -> 

     // Register Custom Object Marshallers 
     WebApplicationContextUtils.getWebApplicationContext(context).getBean("customObjectMarshallers").register() 


     // Contact Type Tags 
     [ 
      [ tag: "preferred" ], 
      [ tag: "default" ], 
      [ tag: "mobile" ], 
      [ tag: "cell" ], 
      [ tag: "work" ], 
      [ tag: "home" ], 
     ].each { 
      def type = TypeTag.findByTag(it.tag) 
      if(!type) { 
       TypeTag tag = new TypeTag(tag: it.tag) 
       tag.validate() 
       tag.save() 

       def foo = "bar" 
      } 
     } 
    } 

И это то, что происходит в журнале:

Configuring Spring Security Core ... 
... finished configuring Spring Security Core 
| Error 2014-03-19 18:47:41,439 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: null 
Message: null 
    Line | Method 
->> 423 | initMetaDataColumnIndexes  in oracle.jdbc.driver.AutoKeyInfo 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 396 | initMetaData      in  '' 
|  77 | getMetaData . . . . . . . . . . in oracle.jdbc.driver.OracleReturnResultSet 
|  39 | doCall       in BootStrap$_closure1_closure3 
|  27 | doCall . . . . . . . . . . . . . in BootStrap$_closure1 
| 308 | evaluateEnvironmentSpecificBlock in grails.util.Environment 
| 301 | executeForEnvironment . . . . . in  '' 
| 277 | executeForCurrentEnvironment  in  '' 
| 262 | run . . . . . . . . . . . . . . in java.util.concurrent.FutureTask 
| 1145 | runWorker      in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 744 | run        in java.lang.Thread 
Disconnected from the target VM, address: '127.0.0.1:60455', transport: 'socket' 

В файле BootStrap.groovy, строка 39 является tag.save() заявление. Если я прокомментирую строку, приложение начнет работать нормально. Строка tag.validate() выполняется отлично, и в этой точке нет ошибок в объекте.

Я запускаю обновление Java 1.7 45 и Grails 2.3.7. Я обновил плагин grails-hibernate до 3.6.10.10. У меня также есть файл ojdbc7.jar в папке lib. Версия Oracle - 11gR2.

Любая помощь очень ценится.

ответ

1

Похоже, ваш водитель может быть проблема: Смотрите здесь: Similar document problem

Похоже на какой-то причине возникла проблема с некоторыми версиями драйверов и столбцов автоматического приращения.

Я бы попробовал другую версию драйвера и посмотрел, нет ли вам удачи.

Надеюсь, что это поможет.