// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 **文字化けに対する対応。 [#i53440eb] JSPのFormで入力した文字が化けてしまうことが多々ありました。忘れないうちに対応方法をメモ。 チェックする項目は、 -JSPの文字コードは? -request.setCharacterEncoding()できてる? -メソッドはPost?get? くらいですね。 基本的にブラウザは、PostするときもGetするときもサーバが返してきたhtml(つまりJSP)の文字コードでデータを送信するみたいです。つまり、そのWEBアプリケーションがhtmlをEUC-JPで返してくる場合(つまりhtmlの文字コードがEUC-JPの場合)ブラウザが送信するデータもEUC-JPになる、という感じ((だと思う))。従って、request.setCharacterEncoding()するときの文字コードもEUC-JPにする、と。 [[JBossPortalを使ったときに>JBoss/JBoss Portalを使う]] PortletはShift_JISだったのにPortal自体がUTF-8で画面を返していたのに気づかず、相当悩みました。 最後に、メソッドがPostであるか、Getであるかが重要です。Tomcat5.5から、つまりJBoss4.x系は setCharacterEncodingメソッドはgetのときはエンコードしない、という仕様になっているため、getするとやっぱり文字化けを起こしてしまいます。解法はこちら[[TomcatのServletRequest#setCharacterEncoding()問題まとめ:http://d.hatena.ne.jp/hyperash/20040309#1078809879]] **Topicを設定 [#xb70abc7] 設定ファイルは、 ${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の設定 [#j52c35f2] ${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サーバに接続する。 [#j68dcded] 通常別サーバの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を呼ぶ。 [#q88e0340] jndi.properties でJNDIのURLを指定する。 ---- この記事は #vote(おもしろかった[3],そうでもない[0]) #vote(おもしろかった[4],そうでもない[0]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}