2012-05-07 5 views
0

У меня есть простое приложение grails (2.0.3) с несколькими моделями доменов, контроллерами и сервисами для них. После того как я сохранил его и попытаюсь запустить на другой машине, я получаю странное поведение.Открытие существующего проекта grails

Созданные ссылки контроллера на индексной странице выглядят правильно, но при нажатии на них перенаправляют меня на localhost: 8080/appname/appname с 404 вместо localhost: 8080/appname/controller/action.

Но когда я пытаюсь вручную воссоздать модель с «grails generate-domain-class», сгенерируйте контроллер и создайте класс обслуживания, он отлично работает. Похоже, что некоторые данные проекта теряются после его перемещения или, возможно, хранятся где-то вне моей папки проекта.

Что мне нужно сделать, чтобы сохранить мой рабочий проект на 1-й машине и снова открыть его на 2-й? Мое приложение создано без использования какой-либо IDE, просто командной строки и текстового редактора.

EDIT

После попытки воспроизвести это поведение, не отправляя весь ненужный код получил то же самое, не двигая проект на другую машину.

Когда я создаю контроллер, который использует впрыскивается службой (после прочтения this):

class BookController { 

    def bookService 

    def index() { 
     redirect(action: "list", params: params) 
    } 

    def list() { 
     def result = bookService.list(params) 
     if(!result.error) { 
      return [ bookInstanceList: result.bookInstanceList, 
       bookInstanceTotal: result.bookInstanceTotal ] 
     } 
     flash.message = g.message(code: result.error.code, args: result.error.args) 
     redirect(url: resource(dir:'')) 
    } 
} 

и генерировать взгляды я пытаюсь получить доступ сгенерированного контроллера URL на странице индекса и получить локальный: 8080/APPNAME/APPNAME с 404 В консоли grails не отображаются сообщения об ошибках.

+0

Если это не так, не могли бы вы дать шаги воспроизведения и/или код? Хотелось бы попробовать это и проверить. –

+0

Наконец-то мне удалось это решить. Последняя строка в методе контроллера вызвала такое странное поведение. Поэтому перемещение приложения с одной машины на другую вызывало проблемы косвенно. На 1-й машинной базе данных таблицы, где не пусто, и приложение не разбогатели этой строки. Спасибо за ваше время! – karejscha

ответ

0

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

grails upgrade 

Когда оно подскажет вам, хотите ли вы обновить проект, скажите «да». Это приведет к перезаписи любых отсутствующих файлов конфигурации, которые вы, возможно, не переместили. Во-вторых, это запустить

grails clean 

Это позволит удалить все скомпилированные классы, которые вы, возможно, перемещаемых через из вашей старой системы на новую.

+0

Спасибо за ответ. К сожалению, это не решило проблему. Я уже пробовал это решение после прочтения [this] (http://grails.1312388.n4.nabble.com/nondeterministic-behavior-of-g-link-and-g-createLink-td1341333.html) сообщения. Это выглядит очень похоже, но даже после того, как «grails upgrade» и «grails clean» я все еще получаю этот «двойной режим имен». – karejscha

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