我想部署一个Grails应用2.5.5到Tomcat 7(Ubuntu的服务器上运行)。我在Intellij 14中使用命令war -stacktrace -verbose
来创建war文件。在我的target
目录中,它成功创建了战争文件,我们称之为myapp-0.1.war
。然后在终端(我使用Linux Mint的),我用下面的命令将其复制到我的服务器(我取代的我的个人资料在下面的例子中,像mypcusername
,myserverusername
和123.123.123.123
)部署Grails的2.5.5应用到Tomcat 7
rsync -rtvW --delete /home/mypcusername/NetbeansProjects/myapp/target/myapp-0.1.war/ [email protected]:/home/myserverusername/myapp-0.1.war/
不要担心上述命令的NetbeansProjects
部分,它最初是一个Netbeans项目。然后我用sudo cp -a myapp-0.1.war/ /var/lib/tomcat7/webapps/
,然后用sudo rm -R ROOT
删除原来的ROOT
目录。然后我跑sudo service tomcat7 restart
,这是问题所在。日志给我的以下内容:
Sep 03, 2017 10:23:39 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Sep 03, 2017 10:23:39 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Sep 03, 2017 10:23:39 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Sep 03, 2017 10:23:39 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
Sep 03, 2017 10:23:43 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Sep 03, 2017 10:23:43 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1734 ms
Sep 03, 2017 10:23:43 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 03, 2017 10:23:43 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.52 (Ubuntu)
Sep 03, 2017 10:23:43 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
Sep 03, 2017 10:24:18 AM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined
Sep 03, 2017 10:24:18 AM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined
2017-09-03 10:24:26,325 [localhost-startStop-1] ERROR context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
... 5 more
Caused by: java.lang.UnsupportedClassVersionError: grails/plugin/cache/CacheConfigArtefactHandler : Unsupported major.minor version 52.0 (unable to load class grails.plugin.cache.CacheConfigArtefactHandler)
at CacheGrailsPlugin.<init>(CacheGrailsPlugin.groovy:49)
... 5 more
2017-09-03 10:24:26,330 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
... 5 more
Caused by: java.lang.UnsupportedClassVersionError: grails/plugin/cache/CacheConfigArtefactHandler : Unsupported major.minor version 52.0 (unable to load class grails.plugin.cache.CacheConfigArtefactHandler)
at CacheGrailsPlugin.<init>(CacheGrailsPlugin.groovy:49)
... 5 more
2017-09-03 10:24:26,332 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing Grails: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Could not create a new instance of class [CacheGrailsPlugin]!
... 5 more
Caused by: java.lang.UnsupportedClassVersionError: grails/plugin/cache/CacheConfigArtefactHandler : Unsupported major.minor version 52.0 (unable to load class grails.plugin.cache.CacheConfigArtefactHandler)
at CacheGrailsPlugin.<init>(CacheGrailsPlugin.groovy:49)
... 5 more
Sep 03, 2017 10:24:26 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Sep 03, 2017 10:24:26 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
Sep 03, 2017 10:24:26 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 03, 2017 10:24:26 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 43228 ms
编辑感谢suricatta,我通过创建和chowning所有这让所有那些警告消失目录跟着他的指示。我正在更新日志。
由于最初提出的问题,我意识到我从来没有真正将.war文件复制到我的服务器,因为当我试图提取文件时,它会告诉我像“你不能提取目录”,然后我注意到它每次使用rsync -rtvW --delete /home/mypcusername/NetbeansProjects/myapp/target/myapp-0.1.war/ [email protected]:/home/myserverusername/myapp-0.1.war/
时创建一个名为myapp-0.1.war的空目录。
然后我用scp /home/mypcusername/NetBeansProjects/myapp/target/myapp-0.1.war [email protected]:/home/myserverusername
实际上做了战争复制到我的服务器。在这次在/ var/lib/tomcat7/webapps/ROOT中解压实际文件后,我重新启动了Tomcat,然后给了我上面的日志。当我去123.123.123.123:8080我得到了一个空白页面,一个JavaScript错误说GET http://123.123.123.123:8080/ 404 (Not Found)
,我试图像<ip>:8080/myapp
和<ip>:8080/myapp/home
都具有相同的结果不同的变化。
我签出了this答案,但似乎并不适用于我因为我的applicationContext.xml中没有相同的值,该问题的OP有。让我知道是否需要发布我的applicationContext.xml。
我不知道如果这些_Problem与directory_警告负责_this页面无法found_,但我通过创建这些目录,如'的mkdir/USR /股/ tomcat7 /普通/ classes'等也解决了他们不要忘记授予权限'chown -R tomcat7:tomcat7/usr/share/tomcat7/common/classes'。 – suricatta
我猜想webapp部署得很好,在目录“myapp-0.1”中。当你打开“123.123.123.123:8080/myapp-0.1”会发生什么? “有用!”是来自apache httpd的默认欢迎页面,而不是来自tomcat。 – andi
看起来像你的项目和/或Grails的已经被编译为Java 8和你的Ubuntu服务器runns Java 7中 https://stackoverflow.com/questions/22489398/unsupported-major-minor-version-52-0 – andi