AWSで、Apache+tomcatにSAstrutsプロジェクトをアップしたよ
Apache+tomcatにSAstrutsプロジェクトをアップしたよ
わざわざSAstrutsって書いたのは、SAstrutsにあるファイルでエラーって
一日はまったからです(白目)
1.Eclipseで作ったプロジェクトのwarファイルを生成して、それをTomcatの中のwebappsフォルダの下に入れて展開します。
プロジェクト名をexampleにしてこれから書いていきます。
2./etc/httpd/confにあるhttpd.confファイルに、
<Location /example/> ProxyPass ajp://localhost:8009/example/ </Location> ProxyPass /example http //localhost:8009/example ProxyPassReverse /example http //localhost:8009/example
を書きます。場所は一番下に追加する。
3.Tomcat配下confフォルダの中のserver.xmlに以下の記述があるのを確認する
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
以上の作業でApacheサーバとtomcatはつながり、http: //<ホスト名>/example/にアクセスすれば、プロジェクトが設定した初期ページに移動するはず。
だけど、私はここエラー起こりました。logを見ると、
because com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
いつも一筋縄ではいかないから悲しい。
このエラーは、ページを構成する設定ファイルのどこかが、utf-8として認識されていないか、utf-8だけど、日本語が書いてありますよーっていうことらしい。
web.xmlに上記のエラーが起こることが多いが、web.xmlを見てみても怪しいところは何もない。
SAstrutsはdiconファイルで設定を書いてあったりするので、diconファイルを見てみたら、デフォルトで日本語が書いてあるファイルが悲しいくらいに文字化けしてる。うわーん。
そして、文字化けしたところを全部消してアップすると通りましたー
diconファイルもちゃんとチェックしよう。これを怠ってweb.xmlばっか見ていたので時間がかかってしまったのです。