Top / JBoss / TIPS集

文字化けに対する対応。

JSPのFormで入力した文字が化けてしまうことが多々ありました。忘れないうちに対応方法をメモ。

チェックする項目は、

  • JSPの文字コードは?
  • request.setCharacterEncoding?()できてる?
  • メソッドはPost?get?

くらいですね。

基本的にブラウザは、PostするときもGetするときもサーバが返してきたhtml(つまりJSP)の文字コードでデータを送信するみたいです。つまり、そのWEBアプリケーションがhtmlをEUC-JPで返してくる場合(つまりhtmlの文字コードがEUC-JPの場合)ブラウザが送信するデータもEUC-JPになる、という感じ*1。従って、request.setCharacterEncoding?()するときの文字コードもEUC-JPにする、と。

JBossPortalを使ったときに PortletはShift_JISだったのにPortal自体がUTF-8で画面を返していたのに気づかず、相当悩みました。

最後に、メソッドがPostであるか、Getであるかが重要です。Tomcat5.5から、つまりJBoss4.x系は setCharacterEncoding?メソッドはgetのときはエンコードしない、という仕様になっているため、getするとやっぱり文字化けを起こしてしまいます。解法はこちらTomcatのServletRequest#setCharacterEncoding()問題まとめ

Topicを設定

設定ファイルは、

${install_root}/server/default/deploy/jms/jbossmq-destinations-service.xml

記述内容は、serverタグの直下に

<mbean code="org.jboss.mq.server.jmx.Topic"
        name="jboss.mq.destination:service=Topic,name=MyTopic">
   <depends optional-attribute-name="DestinationManager">
        jboss.mq:service=DestinationManager</depends>
 </mbean>

Queueの設定

${install_root}/server/default/deploy/jms/jbossmq-destinations-service.xml に

<mbean code="org.jboss.mq.server.jmx.Queue"
   name="jboss.mq.destination:service=Queue,name=JMSSampleQ">
   <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>

を追加。これで、キュー名(実JNDI名という?)はqueue/JMSSampleQとなる。

ENC(Environment Naming Context:環境ネーミング・コンテキスト)ではなく、直接Lookupするには

(QueueConnectionFactory) con.lookup("queue/JMSSampleQ");

でOK.

リモートのJMSサーバに接続する。

通常別サーバのEJBをlookupするときはjndi.propertiesなどで

java.naming.provider.url=jnp://[別のサーバ名]:1099

として他のサーバのJNDIに問い合わせるのですが、JMSをlookupしたらエラーになってました。jboss-web.xmlの設定をいろいろ変えてみたところ、

  <resource-ref>
     <res-ref-name>jms/JMSSampleCF</res-ref-name>
     <jndi-name>ConnectionFactory</jndi-name>
  </resource-ref>

ConnectionFactory?だとOKで、RMIConnectionFactory?はNG、QueueConnectionFactory?などもNGみたいです。ようするに別サーバの場合はがConnectionFactory?でやるって事みたいですね。

別サーバのEJBを呼ぶ。

jndi.properties でJNDIのURLを指定する。


この記事は

選択肢 投票
おもしろかった 4  
そうでもない 0  

Top / JBoss / TIPS集

現在のアクセス:13757


*1 だと思う

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-29 (金) 13:18:26 (3303d)