web-dev-qa-db-ja.com

Tomcat6およびJava 7

Linuxでは、Java 7を使用して記述されたWebアプリケーションをTomcat6にデプロイすることは可能ですか?その場合、それを機能させるにはどの構成を変更する必要がありますか?

Java_HOMEファイルのTomcat6.conf変数を変更して再起動しようとしましたが、TomcatマネージャーのWebページによると1.6を使用しており、1.6以下で記述されたアプリケーションのみが正しくデプロイされます。

Jdk1.6と1.7の両方を異なる場所にインストールしています。

10
Zero

Java JDK 1.7.0を使用してサーブレットをコンパイルしたときに、大きな問題が発生しました。ランタイムmanor.majorバージョンエラーのためにTomcatが起動しませんでした。

Tomcat6でJDK1.7を使用してクラスを実行するには、次のようにします。

  1. Root権限でファイル/etc/init.d/Tomcat6を開きます。

  2. 83行目にJDK_DIRSという変数があります。

  3. 行の先頭に#を追加してコメントアウトします。

  4. 次のように書いてください:JDK_DIRS="/usr/lib/jvm/Java-1.7.0-openjdk-i386"

  5. Tomcatを保存して再起動します

9
Ramzi Komati

GUIログイン用のTomcat-users.xml以外の構成ファイルを設定せずに、デフォルトのTomcatインストールを使用しています。

Apache Tomcat 6.0.35および6.0.16は、それぞれJVM 1.7.0_03-b05(Windows + Linux)で実行されています。

Java_HOMEはJDKフォルダを指している必要があります。例えば。:

C:\Program Files\Java\jdk1.7(Windows)

または

/usr/lib/jvm/Java-6-Sun(Ubuntu、このリンクはJDKのインストールを指しています)

4
eldiamo

同様の問題が発生しましたが、JDK1.7にはTomcat6との下位互換性がないようです。Tomcat7にデプロイするか、JDK1.6を使用して再コンパイルする必要があります。

3
aretai

違いが生じたことがわかりましたwhichJava 7はTomcat6で使用されました。

#Java_HOME=/usr/lib/jvm/Java-7-openjdk  ## Did not work
Java_HOME=/usr/lib/jvm/Java-7-Oracle    ## DID WORK

「機能しませんでした」とは、具体的には、Webアプリを起動したときにClassNotFoundException: Java.lang.AutoCloseable。このインターフェースは Java 7 で新しくなりました。

Caused by: Java.lang.NoClassDefFoundError: Java/lang/AutoCloseable
    at Java.lang.ClassLoader.defineClass1(Native Method)
    at Java.lang.ClassLoader.defineClass(ClassLoader.Java:751)
    at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:144)
    at org.Apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.Java:2818)
    at org.Apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.Java:1159)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1647)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1526)
    at org.springframework.util.ClassUtils.forName(ClassUtils.Java:249)
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.Java:395)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.Java:1349)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.Java:1320)
    ... 47 more
Caused by: Java.lang.ClassNotFoundException: Java.lang.AutoCloseable
        at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1680)
        at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1526)
        ... 58 more
1
Stewart