2015年4月21日火曜日

[ Sublime Text 2 ] Package Control インストール

インストールの方法は、色々な人が書いているので、ハマりどころだけ。

色々な人が書いているのは、その時点で最新のPackage Control をインストールするPython コードを、そのまま記載しているようです。

これをそのままコピペして、プロキシ設定しても失敗します。

添付した画像には、2014年と2015年現時点での差分があります。
引数や、接続先URL が変更になっているようです。


これを考慮して、かつ、プロキシ通るように、ProxyHandler の引数に、Proxy サーバのURL なり、ユーザ名、パスワードなりを入力して、Package Control をインストールします。
#黄色い行の2行目の最後に、ProxyHandler の引数設定をしています。

Sublime Text 2
http://www.sublimetext.com/2

現時点での、Package Control のサイトはこちら。
https://packagecontrol.io/installation#st2

2015年1月27日火曜日

SQL Server 2012 のDB Export とAttach

[ 目的 ]
DB の一部をExport する方法を実施する。

[ やり方 ]
まず、取得したいDB のコピーを作成する。

Export Data... を選択する



Server name は、DB が存在するサーバ名を選択する。

Server name は、DB のコピーを出力するサーバを指定する。

上の画面で、New を押すと、コピーするDB の名前が決められる。
今回は、exportdb とした。
また、名前を入力すると、DB のファイル(MDF ファイル)がどこに作られるかが確認できる。



コピーしたいテーブルを選択する。



ここまでで、コピーは完了。
今度は、出力されたmdf ファイルの中身を見る方法。

Databases 上で右クリックして、Attach... を選択。



Add.. を押す。

先ほどExport した、exportdb.mdf ファイルを選択する。

以下の画面で、mdf ファイルが追加されるのを確認して、OK を押すと、MS SQL Server Management Studio で、Export したDB を参照することができる。

2015年1月16日金曜日

Jetty, Axis2 でlog4j のログを出すための設定パラメータ

[ 目的 ]
サーブレット周りのOSS に、外部から入力されたデータを確認したい

[ 解決策 ]
Jetty とAxis2 を利用している場合、以下のパラメータを設定すると、 データ入力されているかどうかが、なんとなく確認可能。
log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.httpclient.wire.content=DEBUG
log4j.logger.org.apache.commons.httpclient=DEBUG
log4j.logger.org.apache.axis2.util=DEBUG
log4j.logger.org.eclipse.jetty=DEBUG

ちなみに、log4j.properties に設定する上記のパラメータは、
log4j.logger.<package name>=<log level>
とすれば、大体ログ出力できそうです。

2014年10月16日木曜日

CentOS6 でSubversion サーバを構築

ネット接続可能なCentOS 上に、Subversion サーバを構築します。
CentOS 側のNetwork 構成は、ブリッジ接続で固定IP を割り振りました。

以下、リファレンス的に記載していますので、流れを追ってやりたい方は、↓などを参照してみてください。
http://park1.wakwak.com/~ima/centos4_subversion0001.html

インストール系のコマンド集
$su
Password:
# yum install subversion
...
# yum install mod_dav_svn
...
# yum install httpd
...


いろいろ迷ったときに利用したコマンド集
service network restart
chown -R apache:apache /home/svn/repos/
chmod -R u+rw /home/svn/repos/
chcon -R -h -t httpd_sys_content_t /home/svn/repos
/etc/rc.d/init.d/httpd start
/sbin/service httpd reload
/etc/rc.d/init.d/httpd start
/etc/init.d/iptables restart
chkconfig --list httpd
chkconfig httpd on
chkconfig


vi で編集したファイルのコマンド集
vi /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/resolv.conf
vi /etc/httpd/conf.d/subversion.conf
vi /etc/httpd/conf/httpd.conf
vi /etc/sysconfig/iptables


/etc/sysconfig/network-scripts/ifcfg-eth0 の記載。
# 伏せ字使ってます。
DEVICE="eth0"
#BOOTPROTO="dhcp"
BOOTPROTO=none
IPV6INIT="no"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="07c8cac6-7c72-433e-a8c7-434023d6cb23"
IPADDR=xxx.xxx.xxx.86
#IPADDR=192.168.83.2
GATEWAY=xxx.xxx.xxx.1
#GATEWAY=192.168.83.1
NETMASK=255.255.255.0
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME="System eth0"
HWADDR=00:0C:29:5B:BD:C1
DNS1=xxx.xxx.xxx.104
LAST_CONNECT=1413278137


iptables の記載。重要なのは11行目のPORT 80 を開放しているところ。
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


/etc/httpd/conf.d/subversion.conf の記載
認証機能を利用したい場合は、以下のコメントアウト(#)を外して下さい。
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn>
   DAV svn
   SVNParentPath /home/svn/repos
#   AuthType Basic
#   AuthName "Subversion Auth"
#   AuthUserFile /home/svn/svn_passwd
#   Require valid-user
</Location>
コメントアウトを外した後、/home/svn/svn_passwd にパスワードファイルを作成しますが、詳細な手順は上記のサイト等を参照してください。

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