Eclipse local server publish時出現上述錯誤訊息.
SO查到的答案是去看看 servers.xml
不過後來是刪掉 local server重新建一個搞定
code_prettify
2014年12月12日 星期五
2014年11月15日 星期六
64-bit 環境中設定 eclipse使用超過 2G記憶體
設定在 eclipse.ini個人試了沒用
啟動 eclipse, 到 Windows>Preference>Java>Installed JREs, 選擇使用的 JER 後點 Edit.
在 Default VM Arguments輸入 -Xms256M -Xmx8192M.
要確認目前運行環境,寫個 main method,看看下面兩個屬性
System.getProperty("sun.arch.data.model")
Runtime.getRuntime().maxMemory();
6 Common Errors in Setting Java Heap Size
這篇文章討論了常見的輸入錯誤
另外提供了 tomcat設定記憶體使用量的設定及幾個 IDE記憶體使用量的設定方式.
啟動 eclipse, 到 Windows>Preference>Java>Installed JREs, 選擇使用的 JER 後點 Edit.
在 Default VM Arguments輸入 -Xms256M -Xmx8192M.
要確認目前運行環境,寫個 main method,看看下面兩個屬性
System.getProperty("sun.arch.data.model")
Runtime.getRuntime().maxMemory();
6 Common Errors in Setting Java Heap Size
這篇文章討論了常見的輸入錯誤
另外提供了 tomcat設定記憶體使用量的設定及幾個 IDE記憶體使用量的設定方式.
Einstein, where are u?
OK.我笨,被陷害了n個小時
一直以來傾向 Entity以單純 JavaBean呈現
所有 logic放在 service中
遇到 hibernate one-to-many中 element怎麼都放不進去
也不是不知道 java.util.Set不允許重複的物件
只是沒想到 n代前手去 override equals......
OK.我知道有一種看法覺得將 entity作業務邏輯封裝是自然的好事
我也承認
有些東西直接封裝到 entity中相當自然且方便
但是
我還是很難接受把 entity搞成帶業務邏輯的物件
讓它就是個單純的 DTO
把邏輯集中到 service是個人比較喜歡的單純化
也許,現在的 model只是更高維度的架構的 projective/affine space
還真期待 model的 4-dimension space會是什麼
Einstein, where are u?
一直以來傾向 Entity以單純 JavaBean呈現
所有 logic放在 service中
遇到 hibernate one-to-many中 element怎麼都放不進去
也不是不知道 java.util.Set不允許重複的物件
只是沒想到 n代前手去 override equals......
OK.我知道有一種看法覺得將 entity作業務邏輯封裝是自然的好事
我也承認
有些東西直接封裝到 entity中相當自然且方便
但是
我還是很難接受把 entity搞成帶業務邏輯的物件
讓它就是個單純的 DTO
把邏輯集中到 service是個人比較喜歡的單純化
也許,現在的 model只是更高維度的架構的 projective/affine space
還真期待 model的 4-dimension space會是什麼
Einstein, where are u?
maven使用下載檔案建立 local repository
專案將 datasource以 webapp/META-INF/context.xml設定
用 maven embedded tomcat測試時需要給 embedded tomcat設定 jdbc driver建立連線
maven central repository中並沒有 DB2 driver.
把從 IxM下載的 jar 檔註冊到 local repository 中,指令參考:
mvn install:install-file -DgroupId=com.ibm.db2 -DartifactId=db2jcc -Dversion=3.4.6 -Dpackaging=jar -DgeneratePom=true -Dfile=E:\jdbcDrivers\db2jcc.jar
其中 groupId, artifactId, version可自行設定,方便辨識即可.
-Dfile後面為下載的 jar檔存放路徑.
用 maven embedded tomcat測試時需要給 embedded tomcat設定 jdbc driver建立連線
maven central repository中並沒有 DB2 driver.
把從 IxM下載的 jar 檔註冊到 local repository 中,指令參考:
mvn install:install-file -DgroupId=com.ibm.db2 -DartifactId=db2jcc -Dversion=3.4.6 -Dpackaging=jar -DgeneratePom=true -Dfile=E:\jdbcDrivers\db2jcc.jar
其中 groupId, artifactId, version可自行設定,方便辨識即可.
-Dfile後面為下載的 jar檔存放路徑.
Compare java.sql.Date
以下的 Date專指 java.sql.Date.
在思考 Date比較時, 如果要用到 after or before, 最好不要用 a.after(b) or a.before(b)的思考邏輯,而是用 !b.before(a) or !b.after(a)的邏輯思考,在企業環境中比較不容易出錯.
Date的 after or before 怎麼比呢?
基本上等同於 a.getTime() > or a.getTime() <.其中沒有等於的空間,也就是沒有 >= or <=.
所以 a.after(b)等同於 a.getTime() > b.getTime(). a.before(b)等同於 a.getTime() < b.getTime().
這並不惱人, 邏輯其實很清楚.
但重點來了: 商用環境中,當你從 DB 拿到一個 Date時,你並不知道這個 Date到底當初是用
Date.valueOf(String)還是 new Date(System.currentTimeMillis())來的(也許有些規劃得很好的系統沒這問題,但是維護前人留下來的系統時,沒那工夫去檢查到底有沒有不一致的做法(甚至有時是不得已: 尤其有些日期是直接由 UI輸入,有些 Date是 current date, 而這兩種 Date須互相比較時.)
以 2014-05-02為例:
Date.valueOf("2014-05-02").getTime() == 1398960000000.
new Date(1399025789901(L)).toString == 2014-05-02.(事實上是2014-05-02 18:16:29.901)
從 DB看, 兩個都是 2014-05-02.
但是 equals絕對 return false.
因此純粹日期比較時要嘛先過一次水讓兩個日期的邏輯一致, 要嘛, 就是用 not after, not before去思考.
在思考 Date比較時, 如果要用到 after or before, 最好不要用 a.after(b) or a.before(b)的思考邏輯,而是用 !b.before(a) or !b.after(a)的邏輯思考,在企業環境中比較不容易出錯.
Date的 after or before 怎麼比呢?
基本上等同於 a.getTime() > or a.getTime() <.其中沒有等於的空間,也就是沒有 >= or <=.
所以 a.after(b)等同於 a.getTime() > b.getTime(). a.before(b)等同於 a.getTime() < b.getTime().
這並不惱人, 邏輯其實很清楚.
但重點來了: 商用環境中,當你從 DB 拿到一個 Date時,你並不知道這個 Date到底當初是用
Date.valueOf(String)還是 new Date(System.currentTimeMillis())來的(也許有些規劃得很好的系統沒這問題,但是維護前人留下來的系統時,沒那工夫去檢查到底有沒有不一致的做法(甚至有時是不得已: 尤其有些日期是直接由 UI輸入,有些 Date是 current date, 而這兩種 Date須互相比較時.)
以 2014-05-02為例:
Date.valueOf("2014-05-02").getTime() == 1398960000000.
new Date(1399025789901(L)).toString == 2014-05-02.(事實上是2014-05-02 18:16:29.901)
從 DB看, 兩個都是 2014-05-02.
但是 equals絕對 return false.
因此純粹日期比較時要嘛先過一次水讓兩個日期的邏輯一致, 要嘛, 就是用 not after, not before去思考.
ubuntu vim?
6種變形?變形金剛才拍到第 4集耶
jvim-canna
vim-athena
vim-gnome
vim-gtk
vim-nox
vim-tiny(ubuntu 14.04內建)
以上 6種變形金剛vim差異詳見原文 What is the difference between the different vim packages available in Ubuntu
要跑圖形界面 vim直接在 terminal下
gvim
或者到 Search your computer打
text editor
就可以啟動
jvim-canna
vim-athena
vim-gnome
vim-gtk
vim-nox
vim-tiny(ubuntu 14.04內建)
以上 6種
要跑圖形界面 vim直接在 terminal下
gvim
或者到 Search your computer打
text editor
就可以啟動
安裝 docker(on ubuntu)
參考文件:docker官方文件
安裝最新的 ubuntu package(by ubuntu, not by docker.ubuntu提供的最新 package, 不見得是 docker目前最新的 release):
sudo apt-get updatesudo apt-get install docker.io
然後要確認更新到哪個版本,下 docker version
(這應該還需要別的處理,因為到這邊我下 docker version得到的回應是 access denied :P 只能下 sudo docker version)
(欸, sudo apt-get update沒啥必要的感覺,不下這個指令應該也沒差)
然後,如果要啟用 tab快速完成指令(打前幾個字按 tab鍵自動完成)
source /etc/bash_completion.d/docker.io
如果想要用 docker的最新版本
先確認 ubuntu的 APT(Advenced Package Tool)是否支援 https
要確認是否有啟用 https, 找找看有沒有 /usr/lib/apt/methods/https
如果沒有,執行
sudo apt-get update
sudo apt-get install apt-transport-https
啟用 https支援
然後將 docker的 repository key加到系統的 key chain中
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
然後將 docker repository加到 ubuntu的 repository source list中,並且更新 lxc-docker這個 package
sudo sh -c "echo deb https://get.docker.com/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
最後那個指令如果 ubuntu提示 ...package isn't trusted(未受信任的 package)..
想裝就按 y(yes)
不想裝
return :P
以上哩哩拉拉
可以用一個 script代替
curl -sSL https://get.docker.com/ubuntu/ | sudo sh
ps.歹勢,官網降說,但是本人新安裝的 ubuntu 14.04直接言干言焦(ㄐ一ㄝˊㄑ一ㄠˊ)我說 command not found(加了 sudo也一樣)
沒想試,因為我的 docker正常了 :Q
訐譙我只是在練習罕見字
要確認王子與公主最後是否過著幸福快樂的日子,請下指令
sudo docker run -i -t ubuntu /bin/bash
然後王子跟公主就會被抓到你的電腦裡,試試看是不是過著幸福快樂的日子了
ㄟ,王子跟公主幹嘛一直在我面前晃來晃去不走
OK, 按 ctrl-q叫他倆睡覺去先
然後
sudo docker ps -a
找出他倆的床號 xxxxxx
然後
sudo docker stop xxxxxx
把床拆了 :Q
安裝最新的 ubuntu package(by ubuntu, not by docker.ubuntu提供的最新 package, 不見得是 docker目前最新的 release):
然後要確認更新到哪個版本,下 docker version
(這應該還需要別的處理,因為到這邊我下 docker version得到的回應是 access denied :P 只能下 sudo docker version)
(欸, sudo apt-get update沒啥必要的感覺,不下這個指令應該也沒差)
然後,如果要啟用 tab快速完成指令(打前幾個字按 tab鍵自動完成)
source /etc/bash_completion.d/docker.io
如果想要用 docker的最新版本
先確認 ubuntu的 APT(Advenced Package Tool)是否支援 https
要確認是否有啟用 https, 找找看有沒有 /usr/lib/apt/methods/https
如果沒有,執行
sudo apt-get update
sudo apt-get install apt-transport-https
啟用 https支援
然後將 docker的 repository key加到系統的 key chain中
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
然後將 docker repository加到 ubuntu的 repository source list中,並且更新 lxc-docker這個 package
sudo sh -c "echo deb https://get.docker.com/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
最後那個指令如果 ubuntu提示 ...package isn't trusted(未受信任的 package)..
想裝就按 y(yes)
不想裝
return :P
以上哩哩拉拉
可以用一個 script代替
curl -sSL https://get.docker.com/ubuntu/ | sudo sh
ps.歹勢,官網降說,但是本人新安裝的 ubuntu 14.04直接言干言焦(ㄐ一ㄝˊㄑ一ㄠˊ)我說 command not found(加了 sudo也一樣)
沒想試,因為我的 docker正常了 :Q
要確認王子與公主最後是否過著幸福快樂的日子,請下指令
sudo docker run -i -t ubuntu /bin/bash
然後王子跟公主就會被抓到你的電腦裡,試試看是不是過著幸福快樂的日子了
ㄟ,王子跟公主幹嘛一直在我面前晃來晃去不走
OK, 按 ctrl-q叫他倆睡覺去先
然後
sudo docker ps -a
找出他倆的床號 xxxxxx
然後
sudo docker stop xxxxxx
把床拆了 :Q
訂閱:
文章 (Atom)