簡體   English   中英

Tomcat6和Java 7

[英]Tomcat6 and Java 7

在linux中,是否可以在tomcat6上部署使用Java 7編寫的Web應用程序? 如果是這樣,需要修改哪些配置才能使其工作?

我已經嘗試更改tomcat6.conf文件中的JAVA_HOME變量並重新啟動,但是根據tomcat管理器網頁仍然使用1.6,並且只有1.6或更低版本的應用程序正確部署。

我在不同的位置安裝了jdk 1.6和1.7。

當我使用Java JDK 1.7.0編譯我的servlet時遇到了一個主要問題,由於運行時manor.major版本錯誤,Tomcat無法啟動。

要使Tomcat6使用JDK 1.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

我只是使用默認的Tomcat安裝而沒有設置任何配置文件,除了用於GUI登錄的tomcat-users.xml

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安裝)

我遇到了類似的問題,似乎JDK 1.7沒有與Tomcat 6的向后兼容性。您需要將其部署到Tomcat 7或使用JDK 1.6重新編譯。

我發現它使其中的Java 7使用的Tomcat 6的差異。

#JAVA_HOME=/usr/lib/jvm/java-7-openjdk  ## Did not work
JAVA_HOME=/usr/lib/jvm/java-7-oracle    ## DID WORK

通過“沒有工作”,我特別指出,在啟動我的webapp時,我得到了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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM