Soru Tomcat 8 Java 8'i destekliyor mu?


Tomcat 8 (bugün RC1 olarak - görmek bu) hala beta olsa bile, Java 8'i destekliyor mu?

Diğerleri arasında Tomcat 8 Java EE 7'yi destekler:

  • Websockets
  • Servlet API 3.1 (Asynch sunucu desteği)

İçinde sorun vardı geçmiş Tomcat 7 / Java 7 ile, bu yüzden bu soruyu soruyorum.


Güncelleştirme

İnfoq ile ilgili ilginç bir yazı, tomcat 8'in java 8 için hazır olduğunu gösterir. Tomcat 7 bile olabilir.

Makaleye bakın İşte


Herhangi bir uyumluluk sorunu görüyorsanız, bunu burada bildireceğim.


32
2017-08-13 12:13


Menşei


Ha? Tomcat sadece Java'da yazılmıştır. Şüphesiz, Java 7/8/9/10/11 / etc'de diğer tüm Java programları gibi çalışır. - BalusC
@kirdie: Bu Tomcat'e değil, JVM'ye bağlı. - BalusC
BalusC yanlış, elbette. Tomcat'in daha yeni bir JRE ile çalışamaması nedeniyle pek çok ince konu var. - Marko Topolnik
BalusC genellikle Tomcat hakkında haklıdır. Tomcat'in Java 8 ile ilgili hangi konulara dikkat etmesine özen gösterilsin? - Pidster
JSP'leri çalıştıran bazı sorunlar vardı - stackoverflow.com/questions/19243458/... - fgb


Cevaplar:


Göre Tomcat Docs:

Yüklü herhangi bir Java 7 veya üstü JRE (32 bit veya 64 bit) kullanılabilir.


33
2017-08-13 12:18



Versiyon matrisi de aynı şeyi söylüyor: tomcat.apache.org/whichversion.html - BrunoJCM


Java 8 + Spring 4.0.2 üzerinde yazılmış Web uygulaması ile test edilmiş Tomcat 7.0.50, lambda ifadeleri, yöntem referansları ve akışları kullanarak - bir çekicilik gibi çalışır!


10
2018-03-25 17:07



Olabilir ya da olmayabilir. Tomcat, Java 8'i Java 8'i resmi olarak desteklemiyor. - l.cotonea
Gerçek tecrübem hakkında yazdım. Resmi - evet, Tomcat'ın sitesi, Java 7 ve sonraki sürümlerinin desteklendiğini söylüyor. - Denis Makarskiy
Tomcat7 sürümüne bağlı. Ubuntu depolarındaki versiyonun bazı sorunları var gibi görünüyor. Ama 7.0.50 iyi olmalı. - digao_mb
Ama eğer Mojarra 2.1 kullanıyorsanız (test ettiğim 2.1.29) ve Tomcat 7.0.68 ile (test edilen TomEE 1.7.4) bile lambda ifadelerini kullanamazsınız. Aksi takdirde aşağıdaki istisnalar ortaya çıkar: BİLGİ: Mojarra 2.1.29’ı başlatma (20140702-1445) svn.java.net/svn/mojarra~svn/tags/2.1.29@13392) bağlam için '/ reflex' márc. 23, 2016 7:10:35 DU org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory ERROR jeresource.webcontainer.jsf.config - Bilinmeyen tip sabit havuz 18 konumunda 41 ERROR jeresource.webcontainer.jsf.config - 42 numaralı pozisyonda bilinmeyen tip sabit havuz 0 - Miklos Krivan


Kutudan destek almaz. Bazı değişiklikler yapmalısın. apache home \ conf \ web.xml jsp bölümünde aşağıdaki satırları ekleyin.

<init-param>
    <param-name>compiler</param-name>
    <param-value>modern</param-value>
</init-param>
<init-param>
    <param-name>compilerSourceVM</param-name>
    <param-value>1.8</param-value>
</init-param>
<init-param>
    <param-name>compilerTargetVM</param-name>
    <param-value>1.8</param-value>
</init-param>
<init-param>
    <param-name>suppressSmap</param-name>
    <param-value>true</param-value>
</init-param>

Ayrıca setenv.sh (veya yarasa) follwing girişindeki sınıf yoluma ekledim: ihracat CLASSPATH=$JAVA_HOME/lib/tools.jar:$CLASSPATH

Ayrıca java_home 'un 1.8'e ayarlanmış olması gerektiğini de unutmayın (burada biraz duh, ama bahsetmeye değer olabilir)

İşte bazı kaynaklar: http://tomcat.apache.org/tomcat-8.0-doc/jasper-howto.html http://mail-archives.apache.org/mod_mbox/tomcat-dev/201301.mbox/%3C7CF0788AAB53854AB15567D68F41960238297F32@CH1PRD0410MB369.namprd04.prod.outlook.com%3E


5
2018-03-20 15:33





Tomcat 8.0, Java 7'de çalışacak şekilde tasarlanmıştır. Referans olarak, aşağıdaki özellikler desteklenmiştir:

  1. Tomcat 6: Servlet 2.5, JSP 2.1 ve EL 2.1.
  2. Tomcat 7: Servlet 3.0, JSP 2.2 ve EL 2.2.
  3. Tomcat 8: Servlet 3.1, JSP 2.3 ve EL 3.0. Ayrıca, yeni bir spesifikasyon için Java WebSocket 1.0 desteği bulunmaktadır.

Daha fazlasını görün: http://blog.gopivotal.com/products/apache-tomcat-8-what-it-is-what-you-need-to-know#sthash.nVw8CTJ9.dpuf


3
2018-02-03 10:24



Hayır! Tomcat 8, Java 7'de çalışır veya daha sonra. - Mark Thomas
ayrıca websockets tomcat 7'den temin edilebilir - f.khantsis


Linux üzerinde çalıştım ve işe yaramıyor. JSP sayfasında bir lambda ifadesi yürütme söz konusu olduğunda, aşağıdaki hata atılır.

Lambda ifadeleri sadece 1.8 veya üstü kaynak seviyesinde izin verilir Apache Tomcat / 8.0.14

JDK jdk1.8.0_25 üzerinde çalışır


2
2017-11-12 20:29





Teşekkürler Chewy, benim için çalıştı jsp içinde lambdas derlemek için son 1 saat arıyordum.

Aşağıdaki gibi tomcat'in web.xml jsp bölümünü güncelledi (sadece bu kadar değişiklik gerekliydi):

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>compiler</param-name>
        <param-value>modern</param-value>
    </init-param>
    <init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.8</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.8</param-value>
    </init-param>
    <init-param>
        <param-name>suppressSmap</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>fork</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>xpoweredBy</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>mappedfile</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
  </servlet>

2
2017-10-13 12:17





web..xml içinde derleme değerini başlatabilirsiniz daha sonra Tomcat8 Kullanabilirsiniz.

Tomcat 8: Servlet 3.1, JSP 2.3 ve EL 3.0.


0
2017-12-02 09:57