Кто-нибудь может получить плагин app-engine, работающий с Grails на Mac OS X? - PullRequest
0 голосов
/ 09 апреля 2010

Я пытался в течение 4 дней заставить app-engine и grails работать вместе на моем Mac, но безрезультатно. Я использую последние версии Groovy / Grails и Appengine SDK. Я следую шаг за шагом плагину app-engine на сайте Grails ..
http://grails.org/plugin/app-engine

Версия на Groovy: 1.7.1 JVM: 1.5.0_22
Grails 1.3.0.RC1
echo $ APPENGINE_HOME показывает
/Users/markstim/appengine-java-sdk-1.3.2

Я выполняю следующие шаги
1. grails create-app myapp
2. cd myapp; grails list-plugins показывает
hibernate 1.3.0.RC1 -- Hibernate for Grails
tomcat 1.3.0.RC1 -- Apache Tomcat plugin for Grails
добавьте следующую строку в Config.groovy
google.appengine.application="myapp"
установите плагин для app-engine grails install-plugin app-engine и ответьте «jpa», когда его спросят (пока нет ошибок)

Список установленных плагинов теперь выглядит как
app-engine 0.8.9 - плагин Grails AppEngine
gorm-jpa 0.7.1 - Плагин GORM-JPA
затем grails run-app и получите эту ошибку при запуске сервера ...

[java] WARNING: Nested in org.springframework.beans.factory.BeanCreationException: <br>
Error creating bean with name 'pluginManager' defined in ServletContext <br/>
resource [/WEB-INF/applicationContext.xml]: <br/>
Invocation of init method failed; nested exception is <br/>
org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: <br/>
<b>Could not create a new instance of class [GormJpaGrailsPlugin]!:</b>
     [java] java.lang.NoClassDefFoundError: org.grails.jpa.JpaPluginSupport

тогда, если я перейду на localhost: 8080, я получу

ОШИБКА HTTP: 503

Проблема с доступом / myapp. Причина:

SERVICE_UNAVAILABLE

Powered by Jetty: //

Ответы [ 4 ]

1 голос
/ 09 апреля 2010

Localhost: 8080 - это ваше приложение. Вам не нужно добавлять «myapp» к вашему пути.

0 голосов
/ 21 апреля 2010

Мне пришлось удалить плагин Tomcat, прежде чем мой работал. Я думаю, что здесь возникает путаница - tomcat обслуживает приложение по адресу localhost: 8080 / appname, тогда как плагин движка приложения обслуживает его из корня.

На моем Mac с последней версией grails / appengine я не смог заставить работать текущий плагин app-engine [0.8.9]; Я использовал версию 0.8.8.

Для запуска я просто использовал "grails run-app".

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

0 голосов
/ 18 апреля 2010

Согласен с tgd25 - вам нужно будет удалить / myapp, поэтому вы получаете 404.

Как ни странно, после достижения того же исключения, что и вы с Grails 1.3RC1 на Mac, мне удалось запустить 'grails app-engine' для запуска с помощью усилителя DataNucleus и одного (1) класса домена просто для тестирования. .

Однако при сохранении веб-приложение выдает следующее исключение. См. JIRA :

 [java] 2010-04-17 21:48:05,675 [13387359@qtp-10769461-4] ERROR errors.GrailsExceptionResolver  - This operation requires a transaction yet it is not active
 [java] javax.persistence.TransactionRequiredException: This operation requires a transaction yet it is not active
 [java]     at org.datanucleus.jpa.EntityManagerImpl.assertIsActive(EntityManagerImpl.java:846)
 [java]     at org.datanucleus.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:545)
 [java]     at org.springframework.orm.jpa.JpaTemplate$8.doInJpa(JpaTemplate.java:290)
 [java]     at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:183)
 [java]     at org.springframework.orm.jpa.JpaTemplate.flush(JpaTemplate.java:288)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 [java]     at java.lang.reflect.Method.invoke(Method.java:592)
 [java]     at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
 [java]     at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
 [java]     at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
 [java]     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
 [java]     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
 [java]     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:121)
 [java]     at org.grails.jpa.JpaPluginSupport$__clinit__closure3_closure7_closure14.doCall(JpaPluginSupport.groovy:471)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 [java]     at java.lang.reflect.Method.invoke(Method.java:592)
 [java]     at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
 [java]     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
 [java]     at org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod.invoke(ClosureMetaMethod.java:80)
 [java]     at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:307)
 [java]     at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63)
 [java]     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
 [java]     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
 [java]     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
 [java]     at pollster.BookController$_closure4.doCall(script12715407593811946448835.groovy:24)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 [java]     at java.lang.reflect.Method.invoke(Method.java:592)
 [java]     at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
 [java]     at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:225)
 [java]     at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
 [java]     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44)
 [java]     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143)
 [java]     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151)
 [java]     at pollster.BookController$_closure4.doCall(script12715407593811946448835.groovy)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 [java]     at java.lang.reflect.Method.invoke(Method.java:592)
 [java]     at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
 [java]     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
 [java]     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
 [java]     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
 [java]     at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:915)
 [java]     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
 [java]     at groovy.lang.Closure.call(Closure.java:276)
 [java]     at groovy.lang.Closure.call(Closure.java:271)
 [java]     at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:378)
 [java]     at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:245)
 [java]     at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:200)
 [java]     at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:137)
 [java]     at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:88)
 [java]     at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
 [java]     at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:256)
 [java]     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
 [java]     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
 [java]     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)
 [java]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
 [java]     at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
 [java]     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
 [java]     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 [java]     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 [java]     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 [java]     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 [java]     at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
 [java]     at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
 [java]     at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
 [java]     at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:283)
 [java]     at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:259)
 [java]     at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:252)
 [java]     at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:187)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:245)
 [java]     at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:136)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.codehaus.groovy.grails.web.servlet.filter.GrailsReloadServletFilter.doFilterInternal(GrailsReloadServletFilter.java:101)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:67)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:63)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
 [java]     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 [java]     at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
 [java]     at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
 [java]     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
 [java]     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
 [java]     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
 [java]     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
 [java]     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
 [java]     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
 [java]     at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
 [java]     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 [java]     at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349)
 [java]     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
 [java]     at org.mortbay.jetty.Server.handle(Server.java:326)
 [java]     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
 [java]     at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
 [java]     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
 [java]     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
 [java]     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
 [java]     at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
 [java]     at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
0 голосов
/ 09 апреля 2010

Согласно Будет ли он играть в движке приложения Вы должны использовать grails app-engine run

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...