ラベル JAVA の投稿を表示しています。 すべての投稿を表示
ラベル JAVA の投稿を表示しています。 すべての投稿を表示

2013年3月15日金曜日

eclipseでTFSサーバー接続時にエラー

eclipse3.7にTeam Explorer Everywhere 2012をインストールし、
TFSサーバーに接続しようとしたら、
「com.microsoft.tfs.util.Check.notNull(Ljava/lang/Object;)V」
というエラーが出てしまった。

eclipse cleanコマンド
start .\eclipse.exe -clean %*
これを実行することで問題解決しました。

2011年10月27日木曜日

iTextを利用してJAVAでPDFファイルを作成する

現在のWebシステムにおいて帳票の出力を行う場合、PDF形式を用いるのがベターな選択肢と思います。
一般的なオープンソースのライブラリとして「iText」が有名で、「JAVA iText」で検索するとたくさんのサンプルソースがヒットします。
しかしながら、2011年現在ではそのサンプルソースが古くなってしまい、そのままコピーペーストしても動かないことがあります。
2011年現在で動作するサンプルコードを掲載致します。

iTextのライブラリを以下のサイトよりダウンロードして下さい。
http://itextpdf.com/
日本語を表示させるには「iTextAsian.jar」も必要です。
http://itext.svn.sourceforge.net/viewvc/itext/book/lib/itext-asian.jar?view=log

1.[WEB-INF]-[lib]にライブラリをコピーして下さい。
itext2

2.[プロジェクト]-[プロパティ]から[Javaのビルド・パス]を選択して、[ライブラリー]タブから[外部JARの追加]ボタンをクリックし、上記のライブラリを追加して下さい。
itext1

3. 以下のソースを実行してブラウザ内でPDFファイルが表示されればOKです。

package testServlet;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;

public class hello extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();

        try {
            // 出力先を指定し、文書をPDFとして出力
            Document doc = new Document(PageSize.A4, 50, 50, 50, 50);
            PdfWriter pdfwriter = PdfWriter.getInstance(doc, byteOut);

            Rectangle pageSize = doc.getPageSize();
            pdfwriter.setBoxSize(
                    "art",
                    new Rectangle(36, 50, pageSize.getWidth() - 50, pageSize
                            .getHeight() - 36));

            // 日本語フォントの設定
            Font font = new Font(BaseFont.createFont("HeiseiKakuGo-W5",
                    "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED),18);

            Font font_red = new Font(BaseFont.createFont("HeiseiKakuGo-W5",
                    "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED), 18);
            font_red.setColor(BaseColor.RED);

            // ヘッダー・フッター設定
            pdfwriter.setPageEvent(new PdfPageEventHelper() {
                //ヘッダーのフォント
                Font font_header = new Font(BaseFont.createFont(
                        "HeiseiKakuGo-W5", "UniJIS-UCS2-H",
                        BaseFont.NOT_EMBEDDED), 10, Font.ITALIC);

                //フッターのフォント
                Font font_page = new Font(BaseFont.createFont(
                        "HeiseiKakuGo-W5", "UniJIS-UCS2-H",
                        BaseFont.NOT_EMBEDDED), 9, Font.NORMAL);

                @Override
                public void onEndPage(PdfWriter writer, Document document) {
                    Rectangle rect = writer.getBoxSize("art");

                    //ヘッダー表示
                    Phrase header = new Phrase("ヘッダー", font_header);

                    ColumnText.showTextAligned(writer.getDirectContent(),
                            Element.ALIGN_LEFT, header, rect.getLeft(),
                            rect.getTop(), 0);

                    //フッター(ページ)表示
                    Phrase page = new Phrase(String.format("- %d -",
                            writer.getPageNumber()), font_page);

                    ColumnText.showTextAligned(writer.getDirectContent(),
                            Element.ALIGN_CENTER, page,
                            (rect.getLeft() + rect.getRight()) / 2,
                            rect.getBottom(), 0);

                }

            });

            // 出力開始
            doc.open();

            // 出力するPDFに説明を付与
            doc.addAuthor("作成者");
            doc.addSubject("iTextサンプル");

            // 文書に要素を追加
            doc.add(new Paragraph("おはよう", font));
            doc.add(new Paragraph("こんにちは", font_red));

            // 出力終了
            doc.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }

        // ブラウザへの出力
        response.setContentType("application/pdf");
        response.setContentLength(byteOut.size());
        OutputStream out = response.getOutputStream();
        out.write(byteOut.toByteArray());
        out.close();
    }
}

2011年10月20日木曜日

EclipseでのJDBCドライバを使用したSQLserver2005接続方法

【1】「Microsoft SQL Server 2005 JDBC Driver 1.2」のダウンロード
 1. Microsoft Download Centerからダウンロードします。ダウンロードサイトはこちら
 2. ファイルの解凍先を「C:\Program Files\Microsoft SQL Server 2005 JDBC Driver」に変更して[Unzip]をクリック。

【2】eclipseにて、プロジェクトにjarファイルを追加
 1. [パッケージ・エクスプローラー]でプロジェクトを右クリックし、[プロパティー]から[プロパティー]ダイアログ表示。
WS000005

 2. [Javaのビルド・パス]を選択して、[ライブラリー]タブから[外部JARの追加]ボタンをクリックし、[JARの選択]ダイアログ表示。
WS000010

 3. 「C:\Program Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\jpn\sqljdbc.jar」を選択して[開く]ボタンをクリック。
WS000011

 4. [ビルド・パス上のJARおよびクラス・フォルダー]の一覧に「sqljdbc.jar」が追加されたことを確認して[OK]。
WS000012

 5..[WEB-INF]-[lib]にライブラリをコピーして下さい。
SQL_JDBC

【3】 データベースの接続確認
* メインメソッドに以下を記述し実行して、コンソールに「接続成功!!」が表示されたら成功。

   //データベース名、ユーザー名、パスワード
   String strServerName = "SQLServer";
   String strDBName = "TestDB";
   String strUser = "sa";
   String strPassword = "";

   //コンソールに「接続開始」を表示
   System.out.println("接続開始");
   try
   {
   //JDBCドライバを指定
   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
   //接続開始
   Connection objCon = DriverManager.getConnection(
                    "jdbc:sqlserver://" + strServerName + ":1433;" +
                    "databaseName=" + strDBName + ";" +
                    "user=" + strUser + ";" +
                    "password=" + strPassword);

   //コンソールに「接続成功」を表示
   System.out.println("接続成功!!");
   }
  catch(Exception objEx)
  {
    //コンソールに「接続エラー内容」を表示
    System.err.println(objEx.getClass().getName() + ":" + objEx.getMessage());
  }

2011年10月18日火曜日

JAVAからAccessへの接続 (2)

JAVAでAccessに接続するにはJDBC-ODBCブリッジを使用します。

JAVAはunicode、ODBCはMS932(S-JIS)の文字コードがデフォルトですので、
一工夫しないと日本語文字が表示されなかったり、文字化けしたりします。

接続構文と日本語対応構文を組み合わせて載せておきます。

//JDBCドライバのロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//日本語対応処理
java.util.Properties prop = new java.util.Properties();
prop.put("charSet", "SJIS");

//データベースに接続
Connection con = DriverManager.getConnection("jdbc:odbc:Test",prop);
Statement smt = con.createStatement();
ResultSet rst = smt.executeQuery("SELECT * FROM test");

//データベースを切断
rst.close();
smt.close();
con.close();

JAVAからAccessへの接続 (1)

Windows環境では、JAVAからAccessへ接続する際、まず「ODBCデータソースアドミニストレータ」へ登録する必要があります。(それ以外の環境では不明です)

【1】スタートメニューからコントロールパネルを開き、「管理ツール」を開きます。WS000000

【2】データソース(ODBC)を開きます。
WS000001

【3】「追加」をクリックします
WS000002

【4】「Microsoft Access Driver (*.mdb)」を選択し、「完了」をクリックします。
WS000003

【5】データソース名に「Test」と入力します。
*このデータソース名をJavaプログラムの中で使います
WS000004

【6】データベースの「選択」をクリックします。
WS000006

【7】プログラムで使用したいmdbファイルを選択したら、「OK」をクリックします。
WS000007

【8】データベースに使用したいmdbファイルが選択されていることを確認したら、「OK」をクリックします。
WS000008

【9】ユーザーデータソースに「Test」が追加されたのを確認したら、「OK」をクリックします。
WS000009

【10】管理ツールを閉じて終了です。