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

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

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

モバイルアプリ向けプラットフォームAppPotをリリースしました

僕がNCDCの中でプロダクトオーナーを担当しているAppPotというソフトウェアが製品化されました。

f:id:begirama:20131018124306p:plain

AppPotはいわゆるMBaaSといわれるソフトウェアに含まれる下記のような機能を企業内で使い易いようにしたものです。

  • デバイス・サーバー間のデータ同期
  • Push通知
  • アプリを使用するユーザーの管理と認証

などなど


企業でこれまでPCを使ってやっていたような業務をタブレットを使ってどこでもできるようにするためには、既存のシステムとの連携が必須になります。

そこで、AppPotでは他システムと連携するためのアダプタを用意しています。


詳しくは製品サイトを見て下さい。
http://app-pot.jp/


現在、クラウド上でだれでも試せるトライアル環境を準備中です。できあがったら、使ってみてフィードバック下さい。


製品サイトの方では、誰にでも分かりやすいようにという制約がありますが、
個人のブログの中では内部のアーキテクチャや、プロジェクトの話しみたいなテクニカルな内容も書いていきたいなぁ。