Проблема с военным файлом Tomcat7

Это может быть задано ранее, но ни один из них не решает мою проблему

Я сделал сервлет и хочу разместить его в tomcat7. Сервлет работает отлично, когда я запускаю его в tomcat7 с помощью eclipse (запуск на сервере)

echo $CATALINA_HOME — это /usr/share/tomcat7

Однако папка webapp находится в /var/lib/tomcat7.

Я создал военный файл, используя eclipse[file->export->web->war]

ОШИБКА

11 Sep, 2013 12:30:51 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
11 Sep, 2013 12:30:51 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
11 Sep, 2013 12:30:51 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/host-manager.xml
11 Sep, 2013 12:30:58 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [6,114] milliseconds.
11 Sep, 2013 12:30:58 AM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/manager.xml
11 Sep, 2013 12:30:58 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat7/webapps/sms.war
11 Sep, 2013 12:30:58 AM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/sms]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.UnsupportedClassVersionError: org/raxa/module/handlesms/IncomingSMS : Unsupported major.minor version 51.0 (unable to load class org.raxa.module.handlesms.IncomingSMS)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2840)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1668)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:381)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:858)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more
11 Sep, 2013 12:30:58 AM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive /var/lib/tomcat7/webapps/sms.war
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/sms]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:898)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:679)
11 Sep, 2013 12:30:58 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat7/webapps/sample.war
11 Sep, 2013 12:30:58 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
11 Sep, 2013 12:30:59 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
11 Sep, 2013 12:30:59 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7455 ms

Я также пытался создать военный файл с помощью apache ant, но он выдает ту же ошибку.

В eclipse я предоставил каталог установки tomcat как /usr/share/tomcat7, то есть $catalina_home

java-версия

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

РЕШЕНИЕ установить для tomcat java_home системную версию java

Учебное пособие: Ссылка для установки java_home для tomcat7


person user2736993    schedule 10.09.2013    source источник
comment
Вы искали значение java.lang.UnsupportedClassVersionError?   -  person Jim Garrison    schedule 10.09.2013
comment
да. Я думаю, это означает, что JDK и jre имеют разные версии. Но я проверил, и они оба 1.7.0_21. Пожалуйста, посмотрите редактирование   -  person user2736993    schedule 10.09.2013
comment
вы должны проверить, с каким jdk вы запускаете tomcat. наверняка он ниже, чем java 7. Нет необходимости сопоставлять возвращаемую версию java.   -  person blackbird014    schedule 10.09.2013
comment
@blackbird014 Спасибо. Это сработало. Хотел бы я проголосовать за ваш ответ.   -  person user2736993    schedule 10.09.2013
comment
хорошо, я публикую это как ответ, и вы можете принять его :-) Я счастлив, когда моя помощь ценится. спасибо   -  person blackbird014    schedule 11.09.2013


Ответы (1)


На самом деле основным моментом вашего исключения является java.lang.UnsupportedClassVersionError Unsupported major.minor version 51.0
Это означает, что для запуска tomcat необходимо использовать как минимум java 7.

вы должны проверить, с каким jdk вы запускаете tomcat.
наверняка он ниже, чем java 7. Нет необходимости сопоставлять возвращаемую версию java

Для более глубокого изучения java.lang.UnsupportedClassVersionError:
http://javarevisited.blogspot.ch/2011/07/javalangunsupportedclassversionerror.html

person blackbird014    schedule 10.09.2013