[〜#〜] update [〜#〜]必要に応じて/ manager /ページを開くことができるため、Tomcat8はこのシナリオで機能するようです。これはここでの元の問題状態を解決しませんが、このシナリオではdebianバックポートからTomcat8を使用することをお勧めします!
Raspbianは現在のJava 8バージョンで
root@raspberrypi:/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)
tomcat 7をインストールした後、私はdebianバックポートによって提供されるTomcat7バージョンに戻りました。
root@raspberrypi:/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
Tomcat7はjspの例をコンパイルしていません によるとこれは機能するはずです。ただし、マネージャページに次のエラーが表示されるため、これは当てはまりません。
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)
ここでの実際の問題が何であるかを誰かが知っていますか?
質問で述べたように、Raspbianが提供するTomcatはJava 8では動作しません。 このブログ の指示に従ってTomcat8をインストールできました。回避するにはlinkrotと小さな間違いを修正し、そこにあるテキストをほぼ文字通り引用します(バージョン8.0.24用に更新):
RaspberryPiへのApacheTomcat8のインストール
私のRaspberryPiには、すでにApache 2 HTTPサーバーがインストールされているため、この記事では、Tomcatの基本的なインストールと構成を行います。まず、インストールされているすべてのパッケージを更新します。
$ Sudo apt-get update
Javaがすでにインストールされていることを確認してください:
pi@raspberrypi /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)
Piユーザーのホームディレクトリにログインし、Tomcatの目的のリリースをダウンロードします。
$ wget http://mirrors.axint.net/Apache/Tomcat/tomcat-8/v8.0.24/bin/Apache-Tomcat-8.0.24.tar.gz
Zip形式のtarballを抽出します。
$ tar xvf Apache-Tomcat-8.0.24.tar.gz
~/Apache-Tomcat-8.0.24/conf/Tomcat-users.xml
のTomcat-users親要素の最後の子として次のユーザーXML要素を追加します(これにより、パスワードが「raspberry」である「system」という管理者アカウントが作成されます)。<user username="system" password="raspberry" roles="manager-gui"/>
デフォルトでは、pi Linuxユーザーはそれらに書き込むことができないため、次のディレクトリのディレクトリ権限を変更します。
[注:リリース8.0.24のように、この手順を実行する必要はありませんでした。ディレクトリ
Apache-Tomcat-8.0.24/work/Catalina
]はありませんでした。Tomcatという起動スクリプトを/etc/init.dディレクトリに追加します。このディレクトリには次の内容が含まれています。
#!/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
Update-rc.dコマンドを使用して、適切なリンクを/etc/rc?.dディレクトリに追加します。
$ Sudo update-rc.d Tomcat defaults
Tomcatサーバーが起動することをテストします。
$ Sudo /etc/init.d/Tomcat start
Webクライアントで、ブラウザを
http://”Raspberry Pi IP Address”:8080
に向けますTomcatサーバーが停止することをテストします。
$ Sudo /etc/init.d/Tomcat stop
最後に、システムを再起動すると、Tomcatアプリケーションサーバーが起動時と同様にシステムのシャットダウン時に自動的に起動するはずです。
すべてのクレジットは、フライデーナイトプロジェクトに送られます。
指摘すべきことの1つは、ハードコアLinuxユーザーとして、このソリューションは少しハックに聞こえ、ユーザーのホームディレクトリにソフトウェアをインストールしますが、機能します。