1. 無料アクセス解析

crossroad's Blog

Javaを中心にした技術ネタなど。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

JAX-WSとJavaMailの併用で、メールが文字化けする

JAX-WSでWebサービスを呼び出した後で、Java Mail でメールを送信するとメールの本文が文字化け。

 同じJava Mail、メール文面なのに文字化けしたりしなかったりで何が違うのか特定するのに
 手間取ったけど、JAX-WSを使っているかいないかであることが判明。

 JAX-WSが原因とはわかったもののどう対処して良いか、Sun のJAX-WS実装のソースコードでも
 読むしか無いかと思っていたところ、同じ現象に遭遇した人のブログが!

  ゴミ箱.net JavaMailが文字化けする件2

 このブログエントリがなかったら解決できてなかったかも...


原因は、JAX-WS ランタイム 2.1.6 のバグとのことで、2.1.7 以降のバージョンアップすれば解消する。

JAX-WSランタイムは、JREのバージョンによってバンドルされているバージョンが違うようだけど、
Mavenを使っている場合は、dependencies に


<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.1.7</version>
</dependency>


を追加するだけでOK。

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2012/04/10(火) 22:48:04|
  2. ソフトウェア開発 Java
  3. | トラックバック:0
  4. | コメント:0

JenkinsのスクリプトコンソールでOSコマンドを実行

Jenkins のスクリプトコンソールには、任意のGroovyスクリプトが書けるので...

cmd = 'pwd'
def p = Runtime.getRuntime().exec( cmd )
def r = p.getInputStream().newReader('UTF-8') // 標準エラーは p.getErrorStream()
r.eachLine{ println it }
r.close()


とかすると、OSのコマンドを実行できる。
と言うかできてしまうので、ネット上にJenkinsのサイトを公開するときは認証かけときましょう。


テーマ:プログラミング - ジャンル:コンピュータ

  1. 2012/03/13(火) 01:16:18|
  2. ソフトウェア開発 Java
  3. | トラックバック:0
  4. | コメント:0

Oracle が Sun を買収


先日、IBMによる買収が決裂した、Sun Microsystems。
その後、Oracleによる買収が発表されました。

いや、まぁ妥当なとこが出てきたな、と言う感じでしょうか。
Oracle と言えば、BEAも買収してますしね。

これで、ますますJavaと言えば、
IBM系(WebSphere + DB2)か、
Oracle系(WebLogic or OAS + Oracle)か...
みたいになっていくんでしょうか。

まぁ個人的にはどっちゃでも...
Oracle系のほうが経験は多いですが。
  1. 2009/04/21(火) 20:59:02|
  2. ソフトウェア開発 Java
  3. | トラックバック:0
  4. | コメント:0

2強DIコンテナ

もはや昨今のシステム開発で必須となった DIコンテナ。
Java で言えば、Spring と Seasar2 が2強と思います。

僕は基本的にはSeasar2派(?)で、ここ2~3年はSeasar2一本です。
と言うのも、数年前に両者を比較した際、Spring に比べて Seasar2 のほうが
定義ファイルの記述が洗練されていたからです。

個人的には、特にOGNLが使えることが大きいと思っていますが、
Seasar2 のほうが後発と言う事もあってか、全体的にSeasar2のほうが簡潔かつ自然ですね。

あとは、Ruby on Rails の影響を受けて、とにかく面倒を排除しているのも
実際のプロジェクトでは有利に働いていると思います。
# 設定ファイルの記述が多くなるのは、嫌がられますからね...


とそんな僕ですが、最近久しぶりにSpringに触れる機会が。
数年前と比べてどう進化しているか...と思ったのですが、正直思ったより変わってないな、と。

Seasar2に慣れたあとだと、「なんでこんなややこしいねん」と言う感があります。
特に設定ファイルの書き方は、かなり不自然に感じますね...
ナントカFactoryBeanとか、ほにゃららTargetSourceとか、トリッキー過ぎでしょ。
(いや、まぁそうせざるを得ないのはわかりますけどね)


まぁ誤解を恐れずに言えば、 Spring のほうがマニア向けですよね。
難しいけど、使いこなせば強力(??)、かつ自慢できるかも。
Hibernateもそうですけど、融通が聞く分、敷居が高い。
だから、コテコテの技術者は Spring を選ぶ傾向がある気がします。

Seasar2 は、「やさしく」と言うコンセプトもあって、使いやすい。
反面、コテコテの技術者からすると「勝手に色々やりすぎ」と感じるかも。


僕的には、現時点で言えば、Wicket + Seasar2 + S2Dao が良い気がします。
あ~いや、良いかどうかはプロジェクトの特性によりますね。
完全に個人的な好みです、ハイ。

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2009/04/19(日) 03:09:38|
  2. ソフトウェア開発 Java
  3. | トラックバック:0
  4. | コメント:0

注目のWebフレームワーク Apache Wicket

# 久しぶりの技術ネタ。。。ほんと、ここのところ技術的にチャレンジングな仕事してないんすよ。。。

Java のWebアプリフレームワークと言えば、Apache Struts が有名ですが、
今個人的に大注目なのが、Apache Wicket(ウィケット)


他のフレームワークとはかなり赴きが違っていて、単純に言うと、
「AWTやSwing みたいな感じで、Webアプリを開発できるフレームワーク」と言ったところでしょうか。

ここで「ほほ~」と思った方は、Wicketをぜひ試してみてください。
懐かしさと感動がきっとあります。

逆に「Swingってなんやねん」と思った方は、Wicketは難しい...と言うか
考え方を変えないといけないかもしれません。


もう少し噛み砕いて言うと...

 ・オブジェクト指向を意識したフレームワークです。
  例えば、Struts 等では、
   フォームBEAN  ・・・データ
   アクション  ・・・ロジック
  のように、データとロジックを分離しています(つまり、手続き型の設計思想)。

  これに対して、Wicket は画面の構成要素(テキストボックスとかボタンとか)を、
  コンポーネント化し、データとロジックをカプセル化します(オブジェクト指向)。

  例えば、テキストボックスコンポーネントは、
   自分にどのような値が入力されていて  ・・・データ
   それをどのように値検証し、どう処理するのか  ・・・ロジック
  を持っています。

  プレゼンテーションロジックは、このコンポーネントを組み立てることで実装していきます。
  オブジェクト指向的な実装となることで、より自然に、簡潔にプレゼンテーションロジック
  を開発することができます。
  (コードの雰囲気的には、前述のAWT、Swingや、Adobe FLEX に似た実装になります)

 ・作るのは、JavaとHTMLだけです。
  記述しにくく、デバッグもしにくいJSPのようなものはなく、ただのHTMLで画面を作れますので、
  画面デザインしやすいです。

  また、面倒で記述誤りをおかしがちなXMLなどの設定ファイルもありません。
  設定は、全てJavaプログラムとして記述します。
  「それって、設定変更が大変じゃん」と思うかもしれませんが、実際問題として
  設定ファイルにしたから設定変更が楽になっているか?と言うと疑問です。
  それより、Javaプログラムとすることでより柔軟かつ確実に設定を定義できます。
  (もちろん、実装の仕方次第で設定ファイルを使う事も可能です)

と言った特徴があります。

常々、JSPが非常にうっとおしくて開発効率を低下させていると思っていたので、
2番目の特徴は結構大きなアドバンテージになると思います。

1番目の特徴については、個人的には非常にうれしいです。
基本的にオブジェクト指向が最強!と思っている人間ですし、
JavaもAWTやSwingもやってきたので、ごくごく自然な設計思想だと感じています。



ただ、問題もあります。

 ・まだメジャーとは言い切れず、日本語の情報源が少ないので、Strutsなんかと比べると
  技術リスクが高くなってしまいます。

  ここは、アーキテクトが頑張るしかないかな、と。

 ・前述1番目の特徴として挙げた「オブジェクト指向」の敷居が高いこと。
  昨今、Javaをやっていてもオブジェクト指向を意識した設計をすることは少ないです。
  おそらく、Javaプログラマの中にはオブジェクト指向を理解されていない技術者も多いはずです。

  なので、実装スキルはStrutsのそれに比べて、高いものが要求されると思われます。

  Wicketのサンプルコードを見るとわかりますが、無名インナークラスを多用したり、
  変数のスコープを意識する実装スタイルは、慣れないと読む事すら難しいです。
  (くどいですが、Swingの経験があれば、すぐにわかるんですが...)

  また、実装の自由度が比較的高いことも、スキルレベルの低いプログラマには厳しいはずです。
  下手すると、スパゲッティコードだらけになる可能性アリ、です。

  なので、これまたアーキテクトがうまく導いてやらないといけないと思います。


と言うわけで、万事オッケーなフレームワークではない(と言うか、ここにもそんな"銀の弾丸"はない)ですが、
僕としては
「これからはStrutsなんて使ってらんねー。Wicketだ!!」
と言い切りたいくらいです。
あぁ~実際のプロジェクトで使いたい!!
でも現実的には難しいかな...特に大規模プロジェクトになると...orz
Wicketと使ってるプロジェクトがあったら誘ってくださいm(_ _)m

とにかく、オブジェクト指向な頭を持っている技術者であれば、超自然に受け入れられるはずで、
ある程度のJavaとオブジェクト指向のスキルがある開発チームであれば、
Strutsなんかよりもずっと使いやすい
と思います。


なお、日本の情報源としては以下があります。
 ・Wicket-Ja
 ・書籍 オープンソース徹底活用 WicketによるWebアプリケーション開発

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2009/04/03(金) 14:56:44|
  2. ソフトウェア開発 Java
  3. | トラックバック:0
  4. | コメント:0
次のページ

プロフィール

crossroad

Author:crossroad
関西在住。男。
フリーランスのソフトウェアエンジニア。
エレキベース(Rock&Roll)とお酒が好物でございます。

カテゴリー

タグリスト

Java F1 フリーランス ベーシスト HARRY TheStreetSliders iPhone FX お酒 Seasar Maven eclipse Wicket マイホーム 野球 プロジェクトファシリテーション Rails Ruby UML お店 ソフトウェア Tomcat S2Flex2 jsf Teeda Eclipse タグライブラリ ajax タスク europa mylyn trac 

ブログ内検索

最近の記事

最近のコメント

最近のトラックバック

カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

月別アーカイブ

全ての記事を表示する

全ての記事を表示する

Twitter


RSSフィード

リンク

このブログをリンクに追加する

アクセスカウンタ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。