カテゴリー「Java」の10件の記事

2010年9月15日 (水)

MacのEclipseでSlim3を使うには。

MacのJDKはなぜか、64bitでの動作をするようなので、
JDKのコマンドオプションで32bitで動作させるようにする必要がある。

以下の手順で32bitでの動作をしてくれる。
1.Eclipse→環境設定→Java→インストール済みのJRE
2.追加ボタンを押す。
3.インストール済みJREの型でMacOS X VMを選択
  (標準VMを選択するとエラーになる。(サポートしてないらしい))
4.JREホームで以下を選択
5./System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
6.JRE名は分かりやすい名前を設定
7.デフォルトVM引数に-d32を指定

8.完了ボタンを押し、32bit版のJREを選択する。

9.build.xml→アウトラインでgen-controller[デフォルト]を右クリック
  →Antを選択すると
コントローラが生成される。
(パスを入力するウインドウが出てそこにパスを入力する必要がある)


| | コメント (0) | トラックバック (1)

2010年3月 2日 (火)

DevFest2010のQuizに合格しました!

先日、DevFest2010 Japan
応募したのですが、参加するためのQuizが出題されました。

で、以下の通知がありましたので、なんとか合格できたようです。

このたびは、DevFest 2010 Japan にご応募いただきまして、まことにありがとうございます。

クイズの解答を厳正に審査した結果、見事、参加の基準点をクリアされました。おめでとうございます。

後日、参加証をご登録いただいたメールアドレス宛に送付いたしますので、今しばらくお待ちください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
配点詳細

ウォーミングアップ : 0.0 点
HTTP ステータスコード : 2.0 点
Google Code Discussion Group : 3.0 点
暗号通信 : 0.0 点
パッチワーク : 0.0 点
Issue Tracker : 0.0 点
Hackathon : 0.0 点
Android アプリケーション : 1.0 点
Chrome Extensions : 0.0 点
漢字変換サーバ : 7.0 点


合計 : 13.0 点

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
会場で皆様にお会いできることを楽しみにしております。

そこで、私が回答したのはAndroidアプリケーションと漢字変換サーバなのですが、
結構苦労しまして、暗号通信とパッチワークの問題に着手できませんでした。
(ちなみに、Androidアプリケーションは健康日記2を提出。)

作戦は、とりあえず、最大の16桁に埋めて4桁ずつ処理して、0を消去、
兆、億、万を付加。
という作戦で攻めてみました。苦労したのは0100010001000100みたいな数字の
パターンを思いつくまでに時間がかかったことでしょうか。。

久しぶりにソースコードを貼ります。

package jp.iEvolution.DevQuizCharConv;

import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;

import javax.servlet.http.*;

@SuppressWarnings("serial")
public class DevQuizCharConvServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
// パラメータ取得
String strN = req.getParameter("n");
String strResult = "";
String strErr = "";
boolean bErr = false;

try
{
BigDecimal dec = null;

try
{
dec = new BigDecimal(strN);
} catch(Exception e) {
// 変換エラーの場合は、数値以外の文字列を除去して変換
String strReplace = strN.replaceAll("[^0-9]", "");
dec = new BigDecimal(strReplace);
}

String strWork = "0000000000000000" + dec.toString();
strWork = strWork.substring(strWork.length() - 16, strWork.length());

if(dec.signum() > 0)
{
String[] strSubValues = new String[4];
for(int i = 0; i < strSubValues.length; i++)
{
strSubValues[i] = "";
}
// 文字列部品生成
for(int i = 0; i < strWork.length(); i++)
{
int iColumn = (int)Math.floor((double)i / 4);

strSubValues[iColumn] = strSubValues[iColumn] + strWork.substring(i, i + 1);
}

// 各部品の編集
String[] strEdit = new String[4];
for(int i = 0; i < strSubValues.length;i++)
{
strEdit[i] = "";
for(int j = strSubValues[i].length(); j > 0;j--)
{
String strChar = strSubValues[i].substring(j - 1, j);
String strSelect = "";
if(strChar.equals("0")) {
strSelect = "Y";
} else if(strChar.equals("1")) {
if(j != 4)
{
strSelect = "";
} else {
strSelect = "J";
}
} else if(strChar.equals("2")) {
strSelect = "Q";
} else if(strChar.equals("3")) {
strSelect = "G";
} else if(strChar.equals("4")) {
strSelect = "D";
} else if(strChar.equals("5")) {
strSelect = "R";
} else if(strChar.equals("6")) {
strSelect = "F";
} else if(strChar.equals("7")) {
strSelect = "P";
} else if(strChar.equals("8")) {
strSelect = "N";
} else if(strChar.equals("9")) {
strSelect = "B";
}

if(j == 1) {
// 千
if(!strChar.equals("0"))
{
strEdit[i] = "A" + strEdit[i];
}
} else if(j == 2) {
// 百
if(!strChar.equals("0"))
{
strEdit[i] = "U" + strEdit[i];
}
} else if(j== 3) {
// 十
if(!strChar.equals("0"))
{
strEdit[i] = "E" + strEdit[i];
}
}
strEdit[i] = strSelect + strEdit[i];
}
strEdit[i] = strEdit[i].replace("YYYY", "");
strEdit[i] = strEdit[i].replace("YYY", "");
strEdit[i] = strEdit[i].replace("YY", "");
strEdit[i] = strEdit[i].replace("EY", "E");
strEdit[i] = strEdit[i].replace("JE", "E");
strEdit[i] = strEdit[i].replace("UY", "U");
strEdit[i] = strEdit[i].replace("YU", "U");
strEdit[i] = strEdit[i].replace("JU", "U");
strEdit[i] = strEdit[i].replace("AY", "A");
strEdit[i] = strEdit[i].replaceAll("^Y+", "");
}

// 各部品の連結
for(int i = strEdit.length - 1; i >= 0 ;i--)
{
if(strEdit[i].length() > 0)
{
switch(i)
{
case 0:
strResult = strEdit[i] + "K" + strResult;
strResult = strResult.replace("YK", "K");
break;
case 1:
strResult = strEdit[i] + "Z" + strResult;
strResult = strResult.replace("YZ", "Z");
break;
case 2:
strResult = strEdit[i] + "S" + strResult;
strResult = strResult.replace("YS", "S");
break;
default:
strResult = strEdit[i] + strResult;
break;
}
}
}
} else if(dec.signum() == 0) {
strResult = "Y";
} else {
bErr = true;
strErr = "マイナスは変換できません。";
}
} catch(Exception e) {
strErr = e.getMessage();
bErr = true;
}

resp.setContentType("text/plain");
PrintWriter out = resp.getWriter();

if(bErr)
{
out.println("Error:" + strErr);
} else {
out.println(strResult);
}
}
}

| | コメント (0) | トラックバック (0)

2009年9月30日 (水)

Eclipseでプロジェクトのインポートをするときは気をつけよう!

昨日、S2JDBCのサンプルプロジェクトをEclipse Galileoにインポートしようとして、
以下の操作を行ったら、無限にディレクトリを作り続けて削除できなくなってしまいました。

1.サンプルプロジェクトを適当なディレクトリに配置。

2.配置したディレクトリをワークスペースとしてEclipseを起動する。

3.サンプルプロジェクトをインポート(この時、ファイルをコピーするチェックを入れる)

すると、Eclipseが反応しなくなって、エクスプローラから参照すると
無限(?)に再帰して作られたディレクトリ階層ができてしまいます。

皆さんは真似をしないようにしましょう。。

というか、これはバグ…?

| | コメント (0) | トラックバック (0)

2009年6月17日 (水)

はじめてのAndroid

読んでます。

開発環境を整えて、エミュレータ上で「Hello, World」を実行するまでに
意外と苦戦してしまいましたが、
1度開発環境が整えば、プログラム自体はすぐに作れますね。

まさか、ソフトウェア更新用のサイトでEclipse Ganymade(3.4)だとhttpsがエラーになるとは
思いませんでした(これは書籍に注意書きがあります)
ソフトウェア更新サイトの設定って入力間違えると設定削除→再入力しかないので
大変でした。

メニューもXMLファイルに設定するだけで作成できるようですし、
クラス構成もアプリケーションを作成するには分かりやすいのか?と
今の所は思っています。

あとは、エミュレータの起動速度が遅いのが気になります。(本物の端末に合わせてあるようですね。
昔あった、(今でもある?)Java MicroEditionで実行されるエミュレータはそこまで凝ってなかったような。

| | コメント (0) | トラックバック (0)

2009年5月16日 (土)

Open intra-mart

今の所、大ハマリで苦戦中なんですが、

本来の仕事の内容が少しずつ分かってきたので挙げていくと
言語:Java
フレームワーク:intra-mart
DB:Oracle 10g

と言う感じのようです。

そこで、intra-martと言うものがどういうものかを調べていたら、どうやら
StrutsベースのWebフレームワークと言う事で、なんとなく、Strutsの知識を蓄えるのが
良さそうな気がしてきました。

と言っても、その前に今の大ハマリなやつを何とかしないといけないんだけど。。。

で、実は、intra-martは公開されたバージョンのOpen intra-martと言うものが存在しているようで
少しそれを触ってみようかなと思っていたりします。

| | コメント (0) | トラックバック (0)

2009年2月 8日 (日)

Struts2を触りました。

Struts2 フルスタック化&Webアプリケーション開発 ~Struts2+Spring 2+Tiles+iBATIS+GWTで作るショッピングサイト~
を単純に本の通りに読み進めようと思ったら意外とはまってしまいました。

とりあえず環境が違うというのはありました。
本の実行環境
Eclipse3.3
Tomcat5.5
Windows XP
Struts2.0.12

私の環境
Eclipse3.4
Tomcat6.0.18
Windows Vista
Struts2.0.14

と微妙に違うわけですが、
これを入れると動いたと言う点が1点ありましたので
書き残しておきます。

struts.xml
/WEB-INF/jsp/hello.jsp

で良いとなっているのですが(デフォルトの戻り値がsuccessらしいので省略可能と書いてありましたが
実際には省略すると…動いた…(これを書く前はかなり苦戦したのに・・・)

省略せずにとした時にhello.jspがないというようなエラーメッセージが
表示されたのでよくよくみると、struts.xmlで指定している結果ページの指定が失敗していました。。。

ということで、原因はjspファイルのフォルダの指定間違い(作成場所のミス)でした。

何の問題も無く動いてOKとなりました。
久しぶりにはまりましたがやっぱりJavaは楽しいですね。

#最近はいろんなフレームワークを組み合わせてWebアプリケーションを作成するんですね。。。
#これまでいろんな人とJavaの話をした時に「あいつはJavaを知らん」と思われたかな。。。
#背筋に冷たいものを感じました。

| | コメント (0) | トラックバック (0)

2008年12月23日 (火)

Groovyをjavaで実行させる方法(java.exe編)

今日は午後からgroovyの本の読んだところまでのコードを実行させて動作を
確認していました。

で、groovyはJavaに比べてコードが書きやすいと改めて思いました。
ちょっとしたコードを書くならスクリプトのように記述しておけば動作するし、
コンパイルしてJavaのコードと連携する事も可能ですしね。

で、groovyはJava.exeで実行することも可能だったわけですが、
これに苦戦してしまいました。
(先にオチをいうとクラスパスの通し方などは本をしっかり読んでおけば書いてあったわけですが)

実行しても「java.lang.NoClassDefFoundError」がでて実行エラーがでてしまいました。
これだけなら、明らかにCLASSPATHの問題なのは分かっていましたが
CLASSPATHの通し方を忘れてしまっていました。
(これに加えてどのJARファイルを参照すればいいのかが分からなかった)

ということで、色々と苦戦した結果ですが、

JavaからのGroovyの実行方法
その1(クラスパスを指定して実行する場合+実行するクラスがカレントにある場合)
(Windows) java -cp %GROOVY_HOME\embeddable\groovy-all-1.5.7.jar;. hogehoge
(Linux) java -cp $GROOVY_HOME/embeddable/groovy-all-1.5.7.jar:. hogehoge
その2(CLASSPATH変数にセットしておく場合)
Windows
CLASSPATHに%GROOVY_HOME\embeddable\groovy-all-1.5.7.jarを追加してコマンドプロンプト再起動。
(詳しくないのですが、環境変数で%とか使えるのだろうか。私はフルパス指定しました)

Linuxは動作確認していないのでまた今度。

やっぱり基本は大切ですね。

| | コメント (0) | トラックバック (1)

2008年12月18日 (木)

Groovyをインストールしました。

最近、ある方のおすすめでGroovyの理解を深めているわけですが、
やっとPCにインストールしました。

RubyとかPerlのようなスクリプト言語のような記述でプログラムが書けて
しかもJavaVM上で動作させるのでJavaプログラムと連動させることもできます。

今は以下の書籍を読んでいるだけですが、Rubyなどにも実装されている範囲の指定とか
リストの制御が非常に簡単です。(リスト自体の定義も可能だったりするようです)
list[2..3] = [1,2];
と記述するだけでリストの2番目と3番目にデータが更新(データがなければ勝手に拡張して挿入)
されますし、何より、マイナスの添字を指定すると最後尾からの値が取得できたりします。
JavaでそんなことをしたらArrayIndexOutOfBoundsExceptionがスローされますよね。

今のところ興味深いのはクロージャの部分です。今のところ「イベントハンドラ」の
ような動きを想像させますね。(それが正しいかどうかはわかりませんが、何かの処理を
実行した後に実行される処理のようなので。)


| | コメント (0) | トラックバック (0)

2008年8月17日 (日)

Seasar2をいじってます。。。がそれ以前に

以前から目をつけていたSeasar2フレームワークを触ってみることにしました。
まともにJavaでプログラムをするのも3、4年ぶりになりますが、
Eclipse3.4の使い方に苦労する始末。

3.3以前からはかなりの変化があったようです。
(ちなみに私が触っていた頃の環境はEclipse3.0+Lombozプラグインでの開発をしていました。
開発と言っても個人的な趣味でしか無いわけですが。)

なので、Seasar2(まだS2Containerだけです。)の挙動に少し感動しつつも
Eclipse3.4をいじってるような感じがしました。

さて、本題のS2Containerなんですが。(※以降、まだしっかり理解をしたわけではないです)
S2Containerの考え方はFactoryMethodパターンを使っているように思いました。
diconファイルにロードするクラスを書き出す事でコードの変更が不要になっています。
これで、「テストモジュールでのテスト後にプログラムを変更する」という作業がなくなります。

なので、実際の現場で「あのモジュールがないから作業が進みません」なんていう
発言もなくなります。(モックオブジェクトを作成してテストを行う事で品質は確保。
設定ファイルに依存するため、本物モジュールが手に入ったら設定ファイルを書き換える事で
結合も済むわけですから。ただし、結合した後の動作確認はしておくべきでしょう。)

意外とEclipse3.4とSeasar2はどちらも使い勝手が良いと思いました。

| | コメント (0) | トラックバック (0)

2008年8月10日 (日)

Tomcat6.0.18をインストールしました。

私のノートパソコンにTomcat6.0.18をインストールしました。

特に問題なくインストールされた…と思って「インストール成功」画面を
開いてみようとすると、タイムアウトエラーが発生しました。

まさか、Kasperskyがブロックしてるのか?と思って
netstat -an

8080はLISTEN状態で接続待ちをしているものの、つながらない。
怪しい。。。

と思って、ログを見てみると

2008/08/10 20:23:17 org.apache.catalina.core.AprLifecycleListener init
情報: Loaded APR based Apache Tomcat Native library 1.1.14.
2008/08/10 20:23:17 org.apache.catalina.core.AprLifecycleListener init
情報: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
2008/08/10 20:23:18 org.apache.coyote.http11.Http11AprProtocol init
情報: Coyote HTTP/1.1を http-8080 で初期化します
2008/08/10 20:23:18 org.apache.coyote.ajp.AjpAprProtocol init
情報: Initializing Coyote AJP/1.3 on ajp-8009
2008/08/10 20:23:18 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 2904 ms
2008/08/10 20:23:18 org.apache.naming.NamingContext lookup
警告: 参照の解決中に予測しない例外が発生しました
java.io.UnsupportedEncodingException: cp932
at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source)
at java.io.InputStreamReader.(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.createReader(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.setEncoding(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1663)
at org.apache.catalina.users.MemoryUserDatabase.open(MemoryUserDatabase.java:402)
at org.apache.catalina.users.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:103)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113)
at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)
at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137)
at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109)
at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:703)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/08/10 20:23:18 org.apache.catalina.mbeans.GlobalResourcesLifecycleListener createMBeans
致命的: Exception processing Global JNDI Resources
javax.naming.NamingException: cp932
at org.apache.naming.NamingContext.lookup(NamingContext.java:805)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113)
at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)
at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137)
at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109)
at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:703)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/08/10 20:23:18 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2008/08/10 20:23:18 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/6.0.18
2008/08/10 20:23:18 org.apache.naming.NamingContext lookup
警告: 参照の解決中に予測しない例外が発生しました
java.io.UnsupportedEncodingException: cp932
at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source)
at java.io.InputStreamReader.(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.createReader(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.setEncoding(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1663)
at org.apache.catalina.users.MemoryUserDatabase.open(MemoryUserDatabase.java:402)
at org.apache.catalina.users.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:103)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:253)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/08/10 20:23:18 org.apache.catalina.realm.UserDatabaseRealm start
致命的: キー UserDatabase でユーザデータベースを検索中の例外です
javax.naming.NamingException: cp932
at org.apache.naming.NamingContext.lookup(NamingContext.java:805)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:253)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/08/10 20:23:18 org.apache.catalina.startup.Catalina start
致命的: Catalina.start:
LifecycleException: キー UserDatabase でユーザデータベースコンポーネントが見つかりません
at org.apache.catalina.realm.UserDatabaseRealm.start(UserDatabaseRealm.java:261)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1037)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008/08/10 20:23:18 org.apache.catalina.startup.Catalina start
情報: Server startup in 248 ms

とにかくわけの分からない例外がスローされていることだけは分かりました。

と言う事で、インターネット上に情報があるかどうかを検索してみると、
設定XMLファイルにEncoding='cp932'のファイルが存在するのでそれをutf-8に変更すれば
直るという事が分かりました。

と言う事で、早速grepすると、tomcat-users.xmlのEncodingがcp932だったので
utf-8に変更してみました。

結果、無事起動しました。

このヒントを下に再度ログを見てみると、

java.io.UnsupportedEncodingException: cp932

こんなのとか、書いてあるので、言われてみれば…という結果でした。

| | コメント (0) | トラックバック (1)