2013年12月27日 星期五

2013年12月13日 星期五

Spring Framwwork 各版本 jar 下載 及簡易範例

下載位置:
http://mvnrepository.com/artifact/org.springframework
or
http://sourceforge.net/projects/springframework/files/

裡面包含單一檔案 和 整合(spring-full)版本

DTD檔下載位置
http://www.springframework.org/dtd/

bean.xml 抬頭設置





簡易範例:

---SpringTest.java
package spring001;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class SpringTest {
    public static void main(String[] args) {
        ApplicationContext ctx = new FileSystemXmlApplicationContext("src\\bean.xml");
        person p = null;
        p = (person)ctx.getBean("chinese");
        System.out.println(p.sayHello("acc"));
        System.out.println(p.sayGoodbye("acc"));
        p = (person)ctx.getBean("english");
        System.out.println(p.sayHello("acc"));
        System.out.println(p.sayGoodbye("acc"));       
    }
}

--English.java
package spring001;
public class English implements person {
    @Override
    public String sayHello(String name) {
        return name + ",Hello!!!";
    }
    @Override
    public String sayGoodbye(String name) {
        return name + ",Good bye!!!";
    }
}

--Chinese.java
package spring001;
public class Chinese implements person {
    @Override
    public String sayHello(String name) {
        return name + ",哈囉!!!";
    }
    @Override
    public String sayGoodbye(String name) {
        return name + ",再見!!!";
    }
}

--person.java
package spring001;
public interface person {
    public String sayHello(String name);
    public String sayGoodbye(String name);
}

--bean.xml 放置在src目錄下


2013年12月12日 星期四

在Eclipse中,使用JBoss Tools 建立 Hibernate 相關 映射檔案(java,hbm.xml,cfg.xml等)

在Eclipse中先使用 Install new software 下載 JBoss Tools 或直接去官網下載。
以下以連結 Oracle 為例,首先建立一Dynamic Web Project



接著加入相關的jar檔,如 Hibernate jdbc for Oracle

接下來在Project上新增一Hibernate Configuration File

選擇存放hibernate.cfg.xml的位置,一般位於 src根目錄

接著進入如下畫面,開始著手相關配置

可以使用Get values from Conntection 來建立(New)配置檔,以後直接選擇配置檔存取即可

選擇資料庫類型,NameDescription 任意,接著點選Next

選擇資料庫版本,一般選Oracle Thin Driver,接著將相關的jdbc jar檔位置設定好


再至Properties 設定相關資料庫屬性,如UserID Password

完成後,會在src的目錄下看到該檔案(hibernate.cfg.xml),但請進入修改依些設定,如下圖

接著開啟一個新的 Perspective --> Hibernate

接下來可以在畫面分頁中查看是否設定正確,若正確,則可以在Database中查看相關Table資料

接下來執行 Hibernate Code Generation Configurations...

開啟畫面如下,可以新增一個自己的配置
Main
Console configuration --> 選擇自己的專案名稱
Output directory --> 選擇輸出檔案的目錄,一般設定為 src
Reverse engineer from JDBC Connection --> 請勾選
package --> 選擇要放置升成 java 映射檔的 pagkage 為何
reveng.xml --> 若未建立過,請選擇新增,一般也是設定在 src 的目錄下

Exporters
選擇要產出的檔案類型  java / hbm.xml映射檔等

其餘的不太需要變更,直接選擇Run,會發現專案目錄已出現我們要的檔案

其餘一些相關設定如以下圖片:
Table filters  
可選擇要建立相關映射的 Table

選擇產出的 ?.hbm.xml 檔案中,jdbc的資料型別對應Hibernate的類型

將重複無用對應資料刪除

建立要加入該 ?.hbm.xml資料的對應欄位,可順便設定primary key 相關產出方式
範例:
        <id name="logId"type="long">
            <column name="LOG_ID"precision="10" scale="0"/>
            <generator class="native">
              <param name="sequence">CHECKIN_LOG_AUTO</param>
            </generator>
        </id>
對照的選項如下:

完成後產出資料後,請記得去將該 ???.hbm.xml 加入 hibernate.cfg.xml mapping 中,如下

修改後的結果,其實可透過介面新增屬性,當然也可以直接對source對修改

如此就可以試著使用該產出的檔案,若有勾選輸出DAO,則可直接拿來運用

但請記得修改當中的 getSessionFactory()
    protected SessionFactory getSessionFactory() {
        try {
            //return (SessionFactory) new InitialContext().lookup("SessionFactory");
            return (SessionFactory)new          Configuration().configure().buildSessionFactory();
        } catch (Exception e) {
            log.error("Could not locate SessionFactory in JNDI", e);
            throw new IllegalStateException(
                    "Could not locate SessionFactory in JNDI");
        }
    }
如此一來才能順利取得 hibernate.cfg.xml 的相關配置資料

2013年12月3日 星期二

溫故知新 DDL、DML、DCL、DQL

資料定義語言:
DDL(Data Definition Language)


用來定義資料庫、資料表、檢視表、索引、預存程序、觸發程序、函數等資料庫物件。
可以用來建立、更新、刪除 table,schema,domain,index,view

常見的指令有:
CREATE 建立資料庫的物件
ALTER 變更資料庫的物件
DROP 刪除資料庫的物件


===========================================
資料操作語言:
DML(Data Manipulation Language)


用來處理資料表裡的資料。

常見的指令有:
INSERT 新增資料到資料表中
UPDATE 更改資料表中的資料
DELETE 刪除資料表中的資料
===========================================
資料控制語言:
DCL(Data Control Language)


用來控制資料表、檢視表之存取權限,提供資料庫的安全性。

常見的指令有:
GRANT 賦予使用者使用權限
REVOKE 取消使用者的使用權限
COMMIT 完成交易作業
ROLLBACK 交易作業異常,將已變動的資料回復到交易開始的狀態
===========================================
資料查詢語言:
DQL(Data Query Language)


負責進行資料查詢,不會對資料本身進行修改的語句

用來查詢資料表裡的資料。

指令只有一個:
SELECT 選取資料庫中的資料
===========================================
各類輔助指令:SELECT,FROM,WHERE,GROUP BY,ORDER BY

用來定義資料庫、資料表、檢視表、索引、預存程序、觸發程序、函數等資料庫物件。常見的指令有:
CREATE 建立資料庫的物件
ALTER 變更資料庫的物件
DROP 刪除資料庫的物件

2013年10月30日 星期三

[Log4j] 簡易Log4j 設定

好用的 訊息紀錄工具 Log4j
簡易測試程式

package com.test;
import org.apache.log4j.Logger;

public class Log4jTest {
    public static void main(String[] args){
        Logger logger = Logger.getLogger("Log4jTest.class");
        logger.debug("Hello World!!!");
        logger.info("What a beautiful day!!");
    }
}

需要在 src 的目錄下生成一 Log4j.properties 說明
log4j.rootLogger=DEBUG, console, logfile

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %-5p %l - %m%n
log4j.appender.console.encoding=UTF-8

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %-5p %l - %m%n
log4j.appender.logfile.File=c:/log.txt
log4j.appender.logfile.MaxFileSize=3MB
log4j.appender.logfile.MaxBackupIndex=5
log4j.appender.logfile.encoding=UTF-8

log4j.logger.org.apache.commons=INFO
log4j.logger.org.apache.jasper=INFO
log4j.logger.org.apache.catalina=INFO

PatternLayout(ConversionPattern) 的 格式字元列表如下:
# %c 輸出日誌訊息所屬的類別的全名
# %d 輸出日誌時間點的日期或時間,指定格式的方式:%d{yyy-MM-dd HH:mm:ss }。
# %l 輸出日誌事件的發生位置,即輸出日誌訊息的語句處於它所在的類別的第幾行。
# %m 輸出訊息,如log(message)中的message。
# %n 輸出一個列尾符號。
# %p 輸出優先階層,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %t 輸出產生該日誌事件的線程名。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %f 輸出日誌訊息所屬的類別的類別名。
# %M 輸出日誌訊息所屬的類別的方法名。

若執行時發生以下錯誤訊息,則表示 Log4j.properties未設定 or 找不到
log4j:WARN No appenders could be found for logger (Log4jTest.class).
log4j:WARN Please initialize the log4j system properly.

若是採用 log4j.xml 的設定方式(web端搭配web.xml)在程式初始化過程中發生錯誤

Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener

例如設定了:
 請加上下面這一段
問題解答參考:http://emsooriyabandara.blogspot.tw/2013/05/exception-sending-context-initialized.html

 參考資料:
log4j訊息:WARN No appenders could be found for logger
[java] Log4j簡介與快速設定
[Java] log4j 的說明及實作
log4j.properties详解与例子
Log4j簡介

2013年10月29日 星期二

測試 WebService 的工具 wizdl

測試 Web Service 的工具 wizdl

很便利的一套工具,免除開 VS20XX 的麻煩

wizdl - Web Service GUI Test Tool

相關連結:介紹好用工具:Web Service GUI Test Tool ( wizdl )

再來一套 WebServiceStudio

 WebServiceStudio

相關連結 :WebServiceStudio一個方便的WebService測試工具

 

解決在 eclipse 編譯過程中無法正常編譯 且 ToolProvider.getSystemJavaCompiler() returns null 的問題


一般來說是因為在eclipse 中使用錯誤的 jre standard VM開發環境
設定正確即可



 詳細步驟:

  1. Go to Java->Installed JREs. Add your JDK as a runtime. You may choose to select this JDK to use for all your FUTURE projects. However your selection will not take effect on existing projects. Hence onto step 2.
  2. Select your project's properties. Select Java Build Path.
  3. Under the Libraries tab, select JRE System Library [jreblahblahblah] and Edit it.
  4. Select Alternate JRE and use the dropdown to find the JDK that you just added.
  5. Clean your project and rebuild.

 

參考:
null JavaCompiler in Eclipse
ToolProvider.getSystemJavaCompiler() returns null - usable with only JRE installed?

2013年10月11日 星期五

2013年9月16日 星期一

Eclipse 中新增 struts2 的 DTD 定義

目的:在無法連網時一樣可以讓 eclipse 在編輯 xml 檔案時,Alt+? 顯示編輯提示
以 struts2 2.3 為例:
將上圖圈選的文字複製下來,等一下會用到 
-//Apache Software Foundation//DTD Struts Configuration 2.3//EN
http://struts.apache.org/dtds/struts-2.3.dtd

進入 Window -> Preferences -> XML -> XML Catalog 新增

將剛才複製的資料貼上,選擇 OK
之後在沒有聯網時,Alt+? 也會有程式碼提示了
struts-2.3.dtd 可以由 struts2-core-2.3.15.1.jar 用 WinRAR 解壓縮取得

2013年8月22日 星期四

【轉貼】Tomcat與UTF-8編碼

由於Tomcat預設的編碼為ISO-8859-1,所以當使用Tomcat架設JSP與Mysql資料庫時
,便要注意中文編碼的問題。最好的方法就是把 Tomcat、web與Mysql全部的編碼一
律設定為UTF-8,下面將說明如何將Tomcat的編碼處理設定為UTF-8。

1. GET請求部份
Tomcat使用ISO-8859-1編碼作為預設的URL編碼,所以當web發出夾帶中文訊息的
get請求時,資料就會變成亂碼。

解決方法是修改\Tomcat\conf\server.xml檔案,找到Connector標籤,加入
URIEncoding="UTF-8"即可。
========
Connector port="8080" protocol="HTTP/1.1"
URIEncoding="UTF-8"
connectionTimeout="20000"
redirectPort="8443"
========= 

【FROM】http://roymercadian.blogspot.tw/2012/12/tomcatutf-8.html
【FROM】http://overinfinityresearch.blogspot.tw/2007/10/tomcat6-servletget.html

2013年7月24日 星期三

Aqua Data Studio 中文亂碼 及 記憶體調整

中文亂碼
     檔案>選項>一般>格線結果字集> 修改為"新細明體"


預設 JVM 記憶體調整
     修改檔案 C:\Program Files\Aqua Data Studio 7.0 - 32bit\datastudio.ini
     尋常字串: vmarg.2=-Xmx256M
     修改紅色部份 EX: vmarg.2=-Xmx512M

2013年7月15日 星期一

第一支Tapestry... Hello Tapestry


環境 Tapestry 4.0 / eclipse / Tomcat 6
Tapestry 預設的 Html templet 檔名為 Home.html
對應的 page 檔案應取名為 Home.page
對應的 class 檔案應取名為 Home.java
對應的 application 檔案 應取名為 Servlet的名稱.application
以下就是最基本的入門應用



首先建動態網頁專案
 取名HelloTapestry,使用eclipse 內建的 tomcat plugin
 將所需的Tapestry/lib 檔案 copy 至 WebContent\WEB-INF\lib\ 目錄下

 點選所加入的 lib 檔案,選擇 Add to Build Path,或者使用預先建立好的 User Library


編輯 web.xml 檔案(圖中所搭配的工具為 JBoss Tools
新增Servlet / Servlet Mapping

 編輯後的web.xml

接著在 WebContent 新增 Home.html 及 Html.page 檔案
Home.html內容:
Home.page內容:
接著新建一個類別 Home.java
全部完成後 --> 將其載入 Server 中 執行
以上就是執行的結果 ^^
第一種運用 .page 的方式宣告 component
第二種為運用 內崁方式 直接在 Html 內宣告元件類型,並使用
servlet名稱.application 配置 org.apache.tapestry.page-class-packages
使Tapestry framework 自動搜尋對應的 java 類別檔
原始碼下載 -- 第一種寫法
原始碼下載 -- 第二種寫法














2013年7月6日 星期六

在Eclipse中讓Tomcat可以每次都更新靜態檔案如*.html..等

EclipseTomcat可以每次都更新靜態檔案如*.html..
不需要重新部屬...
第一種方法是在Tomcat啟動前加入參數
Disabling caching in Tapestry
It is troublesome to reload the application before each test run. To solve the first part of the problem, you can tell
Tapestry to not to cache HTML and .page files. To do that, you need to set a JVM system property
26 Chapter 1 Getting Started with Tapestry
org.apache.tapestry.disable-caching to true. If you were starting the JVM yourself, you would run it like:
java -Dorg.apache.tapestry.disable-caching=true...
However, as the JVM is started by Tomcat, you need to setup a environment variable JAVA_OPTS before running
startup.bat:
Now, you can change say Home.html and the change will take effect immediately.


第二種方法是在Eclipse的JVM中入參數 
for Tomcat plugin
將上方紅色的那一行加進 JVA 的參數中,下圖中的另外三行是設定記憶體大小

for eclipse server plugin

資料來源:EnjoyWebDevWithTapestry


Related Posts Plugin for WordPress, Blogger...