2014年9月22日月曜日

Windows Server 2012 で、.NET Flamework 3.5 をインストール

Server Manager > Manage > Add Roles and Features を選択


今回は、以下をチェックして、インストールを実施します。
Installation Type: Role-based or feature-based installation
Server Selection : インストールしたサーバを選択
Server Roles     : 何もチェックしない
Features         : .NET Flamework 3.5 Features を選択





これで、インストールを開始して、以下のエラーが出た場合の原因は、インターネットに接続できていないことが多いと思いますので、プロキシとかの確認をしてみてください。


接続確認してみて、まだこのエラーが続く場合は、
Control Panel > System and Security > Windows Update

で、Check for updates を選択してみてください。これで、チェックが正しくできていれば接続に問題はありません。
接続に問題なければ、Windows Update をした後に、.NET Flamework のインストールを実施してください。

以上を試してもインストールができない場合、OS をMount する際に利用したISO ファイルを用意して、 以下のURL に記載していることを試してください。

http://thepracticalsysadmin.com/net-framework-3-5-source-files-could-not-be-found/

log4j でWindows Event Log を書く

まず、↓から、log4j をダウンロードします。

http://logging.apache.org/log4j/2.x/download.html

適当なところに解凍します。
以下のディレクトリに、Jar ファイルがあるので、それを自分のJava プロジェクトのlib フォルダ辺りに配置してください。

また、同様に以下のディレクトリに、NTEventLogAppender (※1) というクラスを利用するためのdll ファイルがあるので、
それもlib フォルダ辺りに配置してください。
Eclipse で実行時、Debug Configuration > VM arguments で、以下を指定してください。
-Djava.library.path=<dll を配置したところのパス>

次に、log4j.properties ファイルを作成します。

後は、LoggingEvent (※2)クラスを適当に作ってあげて、NTEventLogAppender クラスのappend メソッドの引数に与えて上げる。
また、LoggingEvent クラスのコンストラクタの引数は、ある程度正しい値(例えば、timestamp であったら、現在時刻のlong 値、など)を入れてあげないと、Windows Event Log に正しく登録できない。 以下に、1例を示す。
LoggingEvent event = new LoggingEvent( null, logger, level, message, null );
NTEventLogAppender appender = new NTEventLogAppender( "ServiceName", new PatternLayout( "%m%n" ) );
this.appender.append( event );

これで、Windows Event Log が書き込みできたので、CTRL+R > eventvwr で、EventLog を確認できます。
以下に、利用したlog4j.properties ファイルを添付する。
# Logger Root
log4j.rootLogger=INFO,stdout,debuglog
# Logger OperationLog
log4j.logger.operation=DEBUG
# Appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%5p][%d{MM/dd/yyyy HH:mm:ss:SSS}] %m (%c) %n
# Debug
log4j.appender.debuglog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debuglog.encoding=UTF-8
log4j.appender.debuglog.layout=org.apache.log4j.PatternLayout
log4j.appender.debuglog.layout.ConversionPattern=%p,%d{MM/dd/yyyy HH:mm:ss:SSS},%c,%m,%n
log4j.appender.debuglog.File=logs/debug.log
log4j.appender.debuglog.DatePattern='.'yyyyMMdd


※1 https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/nt/NTEventLogAppender.html
※2 https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/spi/LoggingEvent.html

2014年9月11日木曜日

Axis2 のWSDL2Java でサーバサイドコードを自動生成

Axis2 のバイナリ版をダウンロード&解凍。(以下、Cドライブ直下に解凍するものとする。)


解凍したフォルダに、環境変数を通す。

AXIS2_HOME=C:\axis2-1.6.2

適当なフォルダ(ここでは、C:\workspace )を作り、その中にwsdl ファイル、xsd ファイル、services.xml等の必要なリソースファイルを置く。

コマンドプロンプトを開いて、以下のコマンドを実行。

%AXIS2_HOME%/bin/WSDL2Java -uri file:///C:/workspace/xxxx.wsdl -s -ss -sd -ssi


今回は、出力フォルダ指定のオプションを指定していないので、ユーザディレクトリの以下のフォルダにソースコードが自動生成される。
C:\Users\<UserName>\src

ちなみに、Axis2 が自動生成するときに利用するリソースファイルは、以下の所に移動されていた。
C:\Users\<UserName>\resources