Tomcat 7 cu Java 8 pe Raspberry Pi (Programare, Java, Tomcat7, Raspbian)

col.panic a intrebat.
a intrebat.

UPDATE tomcat8 pare să funcționeze în acest scenariu, deoarece am putut deschide pagina /manager/ așa cum era necesar. Deși acest lucru nu rezolvă problema inițială stare aici vă sfătuiesc să folosiți tomcat8 de la debian backports în acest scenariu!

Raspbian livrează actualul Java 8 în versiunea

[email protected]:/etc/apt# java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)

după ce am instalat tomcat 7 am revenit la versiunea tomcat7 furnizată de debian backports care este

[email protected]:/etc/apt# dpkg -l |grep tomcat
ii  libtomcat7-java                       7.0.56-1~bpo70+2                        all          Servlet and JSP engine -- core libraries
ii  tomcat7                               7.0.56-1~bpo70+2                        all          Servlet and JSP engine
ii  tomcat7-admin                         7.0.56-1~bpo70+2                        all          Servlet and JSP engine -- admin web applications
ii  tomcat7-common                        7.0.56-1~bpo70+2                        all          Servlet and JSP engine -- common files

care conform tomcat7 nu compilarea exemplelor jsp ar trebui să funcționeze. Acest lucru, cu toate acestea, nu este cazul, deoarece pagina managerului mă lasă cu următoarea eroare:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [1] in the generated java file: [/var/lib/tomcat7/work/Catalina/localhost/manager/org/apache/jsp/index_jsp.java]
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:477)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213)
    org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)

Știe cineva care ar putea fi problema reală aici?

Comentarii

  • Rulați Java SDK sau Java JRE? –  > Por Buhake Sindi.
  • oracle-java8-jdk, așa cum este instalat în mod implicit în raspbian. Așa cum tocmai a fost actualizat, tomcat8 rulează. –  > Por col.panic.
  • @col.panic Cum ai reușit să instalezi tomcat8 pe raspberry pe raspbian? Ați fost nevoit să-l compilați singur? –  > Por flindeberg.
  • @flindeberg Am adăugat un răspuns în care explic cum am făcut să funcționeze, deși nu este cea mai „bună” soluție, IMHO. Te rog, col.panic, adaugă un răspuns în care să explici cum ai reușit. –  > Por Marcel Korpel.
2 răspunsuri
Marcel Korpel

Așa cum se precizează în întrebare, Tomcat așa cum este furnizat de Raspbian nu funcționează cu Java 8. Am reușit să instalez Tomcat 8 urmând instrucțiunile de pe acest blog. Pentru a evita linkrot și pentru a corecta o mică greșeală, voi cita textul de acolo aproape literal (actualizat pentru versiunea 8.0.24):

Instalarea Apache Tomcat 8 pe un Raspberry Pi

Pe zmeura mea Raspberry Pi am instalat deja serverul HTTP Apache 2 și, prin urmare, acest articol face o instalare și o configurare de bază a Tomcat. În primul rând, actualizați toate pachetele instalate:

$ sudo apt-get update

Confirmați că Java este deja instalat:

[email protected] /usr/bin $ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)

Conectați-vă la directorul de pornire pentru utilizatorul pi și descărcați versiunea dorită a Tomcat:

$ wget http://mirrors.axint.net/apache/tomcat/tomcat-8/v8.0.24/bin/apache-tomcat-8.0.24.tar.gz

Extrageți tarball-ul zippat:

$ tar xvf apache-tomcat-8.0.24.tar.gz

Adăugați următorul element XML user ca ultim copil al elementului părinte tomcat-users din ~/apache-tomcat-8.0.24/conf/tomcat-users.xml (astfel se creează un cont de administrator numit „system”, a cărui parolă este „raspberry”):

<user username="system" password="raspberry" roles="manager-gui"/>

Schimbați permisiunile directoarelor de pe următoarele directoare, deoarece, în mod implicit, utilizatorul pi Linux nu poate scrie în ele:

[NB: Nu a fost nevoie să fac acest pas, deoarece în versiunea 8.0.24, nu exista niciun director apache-tomcat-8.0.24/work/Catalina]

Adăugați un script de pornire numit tomcat în directorul /etc/init.d, care are următorul conținut:

#!/bin/sh
# /etc/init.d/tomcat
# starts the Apache Tomcat service
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop tomcat application server
### END INIT INFO

export CATALINA_HOME="/home/pi/apache-tomcat-8.0.24"
case "$1" in
start)
  if [ -f $CATALINA_HOME/bin/startup.sh ];
  then
    echo $"Starting Tomcat"
    /bin/su pi $CATALINA_HOME/bin/startup.sh
  fi
  ;;
stop)
  if [ -f $CATALINA_HOME/bin/shutdown.sh ];
  then
    echo $"Stopping Tomcat"
    /bin/su pi $CATALINA_HOME/bin/shutdown.sh
  fi
  ;;
*)
  echo $"Usage: $0 {start|stop}"
  exit 1
  ;;
esac

Folosiți comanda update-rc.d pentru a adăuga legăturile corespunzătoare în directoarele /etc/rc?.d:

$ sudo update-rc.d tomcat defaults

Testați dacă serverul tomcat pornește:

$ sudo /etc/init.d/tomcat start

Pe un client web, îndreptați browserul către http://”Raspberry Pi IP Address”:8080

Testați dacă serverul tomcat se oprește:

$ sudo /etc/init.d/tomcat stop

În cele din urmă, reporniți sistemul, iar serverul de aplicații Tomcat ar trebui să pornească automat la pornire și, de asemenea, la închiderea sistemului.

Toate creditele merg la The Friday Night Project.

Un lucru de subliniat: pentru mine, ca utilizator hardcore de Linux, această soluție sună un pic cam grețos, instalarea unui software în directorul personal al unui utilizator, dar funcționează.

Comentarii

  • +1 funcționează de minune, lipsește doar un mic pas, a trebuit să dau noului script tomcat permisiunile corecte folosind $ sudo chmod 755 /etc/init.d/tomcat. –  > Por Pim Hazebroek.
sagar khamkar

Pași pentru a instala noua versiune Apache tomcat pe raspberry pi:

1)sudo apt-get update

2)sudo apt-get install default-jdk

3)sudo wget http://mirrors.estointernet.in/apache/tomcat/tomcat-8/v8.5.47/bin/apache-tomcat-8.5.47.zip

4)sudo apt-get install unzip

5)sudo unzip apache-tomcat-8.5.47.zip

6)cd apache-tomcat-8.5.47/bin/

7)sudo chmod 700 *.sh

8)sudo ./startup.sh

În cazul în care primiți o eroare 404 sau dacă doriți să instalați apache tomcat pe portul 80, atunci vă rugăm să vizitați link-ul de mai jos pentru a ști cum să faceți acest lucru.

http://www.bytesofgigabytes.com/raspberrypi/install-apache-tomcat-on-raspberry-pi/