|
2006年08月27日(日) 01:00
続々々Mavenトラブル事例。
Tomcatプラグイン1.2.1で、日本語を含むJSPをプリコンパイルすると、 hoge_jsp.java:10: 警告: この文字は、エンコーディング MS932 にマップできません。 のような警告がでます。 そのままビルドはできますが、Tomcatにデプロイしてアクセスすると 日本語が文字化けしてしまいます。 原因は、JSPプリコンパイル時の文字コードが、UTF-8固定になっていることにあります。 JSPをプリコンパイルするTomcatのプリコンパイラ(org.apache.jasper.JspC)では、 生成するServletのソースコードのデフォルト文字コードがUTF-8になっています。 Windowsで開発している場合はソースコードはMS932で書くことが多く、 コンパイル時もMS932を指定するので、ここで文字化けが起こってしまうのです。 対応としては、TomcatプラグインのJellyスクリプトを改造するしかありません。 (Tomcatプラグインには、プリコンパイル時の文字コードを指定するプロパティ は用意されていないようです) Tomcatプラグインのplugin.jellyに、_jspcと言うゴールがあり、 その中でjasper2タスクが実行されるようになっています。 jasper2タスクには、javaEncodingプロパティが用意されているので、 これを使って文字コードを指定するようにすればOKです。 <jasper2 validateXml="false" uriroot="${maven.war.webapp.dir}" webXmlFragment="${maven.build.dir}/tomcat/src/WEB-INF/generated_web.xml" addWebXmlMappings="true" outputDir="${maven.build.dir}/tomcat/src/java" javaEncoding="MS932"/> |
|
> javaEcoding="MS932"の部分ですが、javaEncodingの綴り誤りのようですよ。
あうち。 ご指摘ありがとうございます。修正しておきました。
2007年10月06日(土) 15:39 | URL | crossroad #-[ 内容変更]
この記事があったおかげで、文字化けが解決することができましたわ〜
さんくすですー。 javaEcoding="MS932"の部分ですが、javaEncodingの綴り誤りのようですよ。
2007年10月06日(土) 14:08 | URL | jun #.HyIGWrU[ 内容変更]
|
|
|


