Tomcat5.5を少しさわってみました。
PostgreSQLとの連結はうまく行きそうですが、他の部分でまだちょっともたついています。
なにせなかなか時間がとれないのがつらいです。
#夜中の作業なのでどんどん睡眠時間がなくなってしまう~っ!(ひとりごとモード)
キーワード=Tomcat5.5での検索によるアクセスは、私にとって異例のアクセス数だし、
『何か書かなくては...』
とも感じていて、あまり役には立たないかもしれないけれど、メモ書きを残しておきます。
(1)やっぱり日本語がうまくいかない....
jsp中、日本語で書いた文字がすべて化けてしまいます。(変数は大丈夫)
JSPソースはEUC-JPで書いているので、JSP→Servlet生成時にUTF-8へうまく変換できていないのだと思います。
pageEncoding属性を指定してみるもエラーになってしまいます。
<%@ page pageEncoding="charset=euc-jp" %>
HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: サポートされていないエンコーディングです: charset=EUC-JP org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
「私、なにかイケナイことしたかしら...?」と思い、
euc_jp
EUC-JP
EUC_JP
などといろいろ試してみましたが、すべて駄目。
....っというのは、あとで気付いたのですが、私のオオボケでした(苦笑)。
× <%@ page pageEncoding="charset=euc-jp" %>
○ <%@ page pageEncoding="euc-jp" %>
まったくなにをやってるんだか...
#やっぱり寝不足だわ。

でも、ボタンのところ....「結果」と表示したかったのに、上手く変換されていません。
う~~ん
その他の上手く表示されている日本語の部分はプロパティファイル(ApplicationResource.properties)を用いての表示です。
こちらは表示するエンコーディング(iso-2022-jp)にあわせてあるので文字化けしません。
※入力文字列の日本語処理についてはこれから...。
(2)jdbcの設定とCLASSPATHの設定
→$CATALINA_HOME/common/libの下にpg74.215.jdbc3.jarを置いてみたけれど、自動的にPATHは設定されなかったです。
$CATALINA_HOME/bin/setclasspath.shを下記のように修正しました。
(43行目付近)
CLASSPATH="$JAVA_HOME"/lib/tools.jar
を
CLASSPATH="$CLASSPATH":"$JAVA_HOME"/lib/tools.jar
とする。
※setclasspath.shにてCLASSPATHがリセットされてしまうので、
ユーザーの環境変数の$CLASSPATHを無理やり繋げているだけです。
※jdbcについては.bash_profileにて下記のようにCLASSPATHを設定
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib/pg74.215.jdbc3.jar
(3)その他メモ
jspで余計なパッケージのimport文があると、
「生成されたサーブレットのエラーです:
The import java.sql is never used」 ←(例)
なぁんてエラーになってしまいます。
『大は小を兼ねる』
だから、
「まぁまぁ、、、いいじゃないの、そのくらい....」
っと言いたいところですが....
参照もしていないものを宣言しちゃうのもなんなので仕方ないでしょう。
これ、以前の環境ではエラーにならなかったよーなきがするのだけれど....気のせい?
#これ、Struts(1.2.2)のサンプルでも同じ現象が出ています。
#Struts Examples のUpload example(/struts-examples/upload/upload.do)がエラーになります。
(追記)
jspから生成されたらしきjavaソースをみつけたので日本語部分の内容を確かめてみました。
($CATALINA_HOME/work/Catalina/localhost/***/org/apache/jsp/struts内にありました。)
すると....JSPではEUCだった日本語はutf-8へきちんと変換されているのです。
↓はutf-8で表示したもの。結果ボタンの部分です。
private boolean _jspx_meth_HTML_submit_0
(javax.servlet.jsp.tagext.JspTag _jspx_th_HTML_form_0, PageContext _jspx_page_context)
throws Throwable {
PageContext pageContext = _jspx_page_context;
JspWriter out = _jspx_page_context.getOut();
// HTML:submit
org.apache.struts.taglib.html.SubmitTag _jspx_th_HTML_submit_0
= (org.apache.struts.taglib.html.SubmitTag)
_jspx_tagPool_HTML_submit_value_property_nobody.get(org.apache.struts.taglib.html.SubmitTag.class);
_jspx_th_HTML_submit_0.setPageContext(_jspx_page_context);
_jspx_th_HTML_submit_0.setParent((javax.servlet.jsp.tagext.Tag) _jspx_th_HTML_form_0);
_jspx_th_HTML_submit_0.setProperty("enter");
_jspx_th_HTML_submit_0.setValue("結果");
int _jspx_eval_HTML_submit_0 = _jspx_th_HTML_submit_0.doStartTag();
if (_jspx_th_HTML_submit_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
return true;
_jspx_tagPool_HTML_submit_value_property_nobody.reuse(_jspx_th_HTML_submit_0);
return false;
}
※表示幅の関係で途中改行を挿入した部分があります。
.....っということは、表示に至るまでのエンコーディングが悪いということ?
もしかしたら、サイト全体をutf-8で表示することにしちゃえばいいのかも??
ごめんなさい。もう少し試行錯誤して考えてみます。
思えば私って、なにをやっても何を使っても同じようなことばかり悩んでいるみたい。
MTでも確か文字化け文字化けって騒いでいた記憶があります(^^;
それで、utf-8に落ち着いたんですが....。
P.S.
ひどいソースで作業しているので、公開できずごめんなさい。
人様にお見せできるようなシロモノができたあかつきには載せますので....。
投稿者 megu : 2004年09月09日 02:32
