そごうソフトウェア研究所

SOA、開発プロセス、ITアーキテクチャなどについて書いています。Twitterやってます@rsogo

WebLogic 12c セットアップ手順メモ

準備

yum install ld-linux.so.2

プロダクトのインストール(コンソールモード)

http://docs.oracle.com/cd/E28613_01/doc.1211/b65933/console.htm

 chmod +x wls1211_linux32.bin 
 wls1211_linux32.bin -mode=console

ドメインの作成(コンソールモード)

http://docs.oracle.com/cd/E28613_01/web.1211/b65940/console_mode.htm

これをやってないとドメインの作成が終わらなかった。失敗したらdomains以下のファイルを削除して、再作成でOK。

export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom

コンソールモードで起動

config.sh -mode=console

ドメイン作成後の準備

/Oracle/Middleware/wlserver_12.1/common/bin/config.sh

boot.propertiesの作成

これを作成しないと、起動時にユーザーとパスワードを聞かれる

{WLS}/user_projects/domains/mydomain/servers/myserver/security/boot.properties

いつも間違ってdomainの直ぐ下のsecurityフォルダにboot.propertiesファイルを置いて、起動しねぇ!となる。

12.1.1は必須のパッチがありそう。 http://www.davidghedini.com/pg/entry/oracle_web_logic "Before investing any time in this, despite a fresh download you will need,.... a patch: (p13606167_12110_Generic.zip). "

あと、JDKのバージョンが6系だと設定の保存で失敗することがあった。7系にあげることで解消。

iTextについてちょっと調べて見た

Javaのサーバーサイドで簡単な帳票を作成したいのだけれど、専用の製品を導入する程でもない。 ということで、手軽にPDFを作成できるライブラリを調査しました。

ネット上に情報が多そうなのはiText(http://itextpdf.com/)でした。

ライセンスについてのQiitaの記事が分かりやすかったです。 http://qiita.com/takudo/items/e2b37b659c9143db730c

CSSで改行の指定(page-break)もあるようなので、更にライトにやるなら、こっちかなぁ。 http://www.htmq.com/style/page-break-before.shtml

SQL DeveloperからSQL Serverにつなぐ

SQL DeveloperはOracleが出しているDatabaseを操作するためのGUIのクライアントツールです。Oracle SQL Developerから入手できます。

接続先のデータベースがOracle DBの場合はそのまま使えるけど、それ以外で最初は新規の接続を選択しても、Oracleというタブしかないので準備が必要です。 MicrosoftSQL Serverに接続する手順を書きます。

ドライバーの設定

Microsoftのドライバを使うのでは無くて、オープンソースjTDSを使うみたいです。

動作確認はjtds-1.3.1-dist.zipを使っています。

Zipを解凍した後、SQL DeveloperのPreferenceからjtds-1.3.1.jarのパスを設定します。

f:id:begirama:20140405074850p:plain

接続設定

ドライバを入れる前までは無かったSQL Serverタブが表示されます。

f:id:begirama:20140405072632p:plain

上手く接続できれば、GUIでがんがん操作できるので便利です。

f:id:begirama:20140405074445p:plain

参照資料

http://www.oracle.com/technetwork/jp/developer-tools/sql-developer/thirdparty-095608.html その他のデータベースに接続するために必要なドライバに付いても書かれています。

WebLogic Server 12c上でHibernateを使う

WebLogicHibernateを使った時にはまったことをメモしておきます。

利用している環境はWebLogic Server 12c。

発生したエラーはClassNotFound。 org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from 自分で作ったクラス]

解決方法はデプロイしようとしているのがwarファイルだったので、weblogic.xmlを開いてWEB-INF/lib以下を優先するように設定。

1.WEB-INF/lib以下全部を優先する場合

<weblogic-web-app>
(略)
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
(略)
</weblogic-web-app>

2.特定のjarのみWEB-INF/lib以下を優先する場合 今回使っているのはantlr-2.7.6.jarでした。

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app>
(略)
    <container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <prefer-application-packages>
            <package-name>antlr.*</package-name>
        </prefer-application-packages>
    </container-descriptor>
(略)
</weblogic-web-app>

なるべくJava EEの標準ライブラリでやった方がこの手の問題は絶対楽だな。

参考サイト

https://blogs.oracle.com/WebLogicServer/entry/resolving_conflicts_with_classloaders http://stackoverflow.com/questions/2702266/classnotfoundexception-hqltoken-when-running-in-weblogic http://docs.oracle.com/cd/E24329_01/web.1211/e24368/classloading.htm#i1098467 Log4jantlrWebLogicのマニュアルのサンプルに載るくらい皆はまってるってことだな。

GitHubメモ

会社でやっているプロジェクトは複数の会社で構成されることが多く、GitHubを使ってます。 まだそれほど大規模な使い方では無いのでPrivate Projectで運用しています。

Issue管理や、Wikiも使用してコミュニケーションしています。 設計書はお客さんに提出する関係で、Officeで作っているけどこれもWikiに移行していけたらいいな、と思ってますが表や、図の書きやすさはまだまだMS Officeの方が良い。

Wikiにはプロジェクトに入ったら知っておいて欲しいルールや、環境の情報、Tipsなんかを書いていっています。

このエントリでは、GitHubを使う時のメモを書いていっています。

Step 1. リポジトリのクローン

GitHub上のプロジェクトをローカルに取得する

$ git clone https://github.com/AAA/BBB.git BBB/

URLの部分はGitHubリポジトリ画面の右下から持ってくることができます。 f:id:begirama:20140214164753p:plain

Step 2. ファイルの追加

$ vi test.txt  
$ ls  
README.md   test.txt  
$ git add test.txt   

Step 3. ローカルへのコミット

$ git commit -m "テスト用のファイルを追加"  
[master 2588d93] テスト用のファイルを追加  
 1 file changed, 1 insertion(+)  
 create mode 100644 test.txt  

Step 4. GitHubへのPush

$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 369 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/AAA/BBB.git
   1e9e805..2588d93  master -> master

これで、GitHub上に先ほどのファイルが更新される。

f:id:begirama:20140215110747p:plain

push.defaultが定義されていないという警告がでたので、設定する。

git config --global push.default simple

JavaのpropertiesのUTF8、Native変換

いつも忘れてしまう。

符号化されているpropertiesファイルをもらったら、こちらで人が読めるように変換。

native2ascii -reverse MessagesBundle_ja.properties MessagesBundle_ja_native.properties


日本語の優勢等が終わったら、符号化する。

native2ascii MessagesBundle_ja_native.properties MessagesBundle_ja.properties

Oracleの公式マニュアルはこちら。
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/native2ascii.html