2009年11月11日星期三

DSpace遇到「Failed to resolve artifact.」的問題

image

在DSpace編譯的過程中,如果遇到以下錯誤訊息,大部分時候是網路連線已經中斷的問題:

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

No versions are present in the repository for the artifact with a range [1.5.0.0,1.6.0.0)
  org.dspace:dspace-api-lang:jar:null

from the specified remote repositories:
  central (http://repo1.maven.org/maven2),
  maven.dspace.org/snapshot (http://maven.dspace.org/snapshot)


[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------

這是由於DSpace在做MVN的時候需要去網路上檢查jar檔案,而如果你的伺服器網路如果不通,那就無法順利進行編譯。

解決方法則就是一般網管的問題囉。VirtualBox的NAT虛擬網卡偶爾會當掉,就會發生上述情況,我在此留下一個記錄。

2009年11月3日星期二

我也被詐騙了

今晚我被冒稱PCHome購物人員(大陸口音)跟中華郵政人員說我交易紀錄從單筆轉帳變成12期轉帳,原本買了200元的商品變成要繳交2400元,必須趕快處理完畢,便指示我到ATM去作取消的動作,於是我上當了。


過程是這樣的:

晚上8點我接收大陸口音(怪異點:其實電話訊號非常不清楚,我也聽了好久,其實不是很確定)的PCHome客服人員(來電顯示+0227040999,這隻是詐騙電話喔)解釋說我交易資料因為公司伺服器更新失誤所以單筆匯款變成12期匯款,原本交易金額200元便要付12期變成2400元,而我上次的確在PCHome購物時發生匯款錯誤的動作,而稍微相信。

他與我確認中華郵政的客服電話(怪異點:根本就不需要跟我確認,他只是要仿造電話而已)之後,說他要跟中華郵政確認完之後再由中華郵政人員打電話給我。

稍後果然有中華郵政客服專線0423542030來電(怪異點:其實來電號碼可以偽造,只是當時我不知道),叫我去附近ATM作餘額查詢。我想說餘額查詢也不是轉帳,他說要馬上跟我確認,於是我就急忙地衝到附近的ATM去處理。查完餘額之後,他開始跟我確認經辦機號(ATM的編號),並告訴我地址,以讓我信服他其實跟ATM有連線(怪異點:其實這上網查得到經辦機號,那不需要跟ATM連線),然後跟我確認個人資料(怪異點:都外洩了吧),並強調他並不是詐騙集團之類的。

然後他指示我操作ATM,一開始就用跨行轉帳,我有意識到這是詐騙手法,於是很仔細地跟他再確認交易資料跟輸入的資料,他指示我操作的帳號、金額什麼的,都是錯誤的資料,他說那是內部操作。到此為止,都是以往聽過詐騙的手法,我也中斷了好幾次操作,他一直催促我,情急之下我也越來越沒有戒心,想趕快把他弄完回去趕程式,也累了。

最後一次他就用存簿轉帳,而且輸入了PCHOME交易編號(怪異點:其實是存戶帳號,仔細想想PCHome的編號應該不會都是數字),金額則輸入29999密碼(怪異點:這是非約定轉帳上限3萬元少一元),然後匯出後他告訴我連線錯誤,然後說到12點就會恢復正常,叫我別緊張,他現在馬上修正,就掛斷電話。

我馬上打同一隻電話0423542030到中華郵政,他說我被詐騙了,請打165反詐騙電話去報案。我跟165報案完畢,就請浚學弟陪我一起到政大前面的文山分局報案,作筆錄、登記拿三聯單。

總結以上,反詐騙的重點在於:

  1. 不管怎樣都跟165反詐騙電話確認一下吧!
  2. 應該要你打過去跟他確認,他就沒辦法用來電顯示修改器了。.
  3. 不要急,其實這種東西都沒這麼急的,多多跟別人確認確認吧。
  4. 朋友請阻止認識的人不要這樣做,下次有人遇到帳戶問題的,我會第一時間打電話阻止他,順便卡詐騙電話來電。

反正自己笨,也沒什麼好反駁的。就這樣吧。

題外話,被詐騙之後中華電信又來電說我電話費沒繳交,我去電跟客服人員確認之後發現真有此事,但是已經申請延期,所以不必繳。真是麻煩呢。

2009年10月10日星期六

我回來了,我又走了

2009-10-09-251

教育部全國通識網到中南部舉行公開說明會,而10/8這天來到了台中逢甲,準備10/9將在逢甲大學舉行的中區說明會。台中逢甲夜市一向是十分有名的,既然來了當然是要來逛逛囉。

「熟的人帶路。」同事對我這個台中人這樣說,我有點尷尬地回他道:「其實,我也不知道這裡有什麼好吃的。」

我不太會玩,也不太會分辨美食,大概是因為多少抱持著「不要多花錢在這些吃吃喝喝的玩樂上」的傳統價值觀的關係,「這邊哪裡好玩?有什麼好吃的?」我大概都是一問三不知。

但是,我可以說的是另一種事情……

「這家馬鈴薯泥是以前我朋友帶我來吃過的。」

「這條街以前我跟我朋友來的時候,都是肩靠肩地前進呢。」

「逢甲大學那棟體育館,以前我大學繳交志願卡的地點就是在那邊。」

「我妹很常來逛逢甲夜市喔。」

……諸如此類的事情,都是回憶。

對我來說,比起美食、好玩的事物,回憶有趣多了。

2009年10月5日星期一

製作VirtualBox 3.0.6自動安裝檔

image

VirtualBox是一個虛擬機器的軟體,我喜歡用他來架設測試用的機器,以及快速安裝KohaDSpace。然而VirtualBox安裝步驟多,我希望能夠簡化這個程序,因此開始研究起自動安裝的方法。(此處使用的是VirtualBox 3.0.6,自由軟體)

AutoIT,可以script(腳本檔)程式來控制你電腦中任何操作,甚至臨時建立表單、問答視窗,都可以作到。他也常被用來作為自動安裝的用途,也包括了自動安裝VirtualBox。(此處使用的是AutoIT V3)

修改了左又天撰寫的自動安裝script,我也利用IconsExtract抽取出VirtualBox的icon檔案,接著就可以利用WinRAR來製作自我解壓縮檔。(此處我使用的是3.61中文版)

最後的結果,就放在此處讓人下載:

另外放上我改過的AutoIT Script 檔案,但是最後的網卡安裝並沒有寫得很好,請各位先進多多指教:

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
RUN("VirtualBox.exe")
WinWait("Sun VirtualBox Setup","The Setup Wizard wil")
If Not WinActive("Sun VirtualBox Setup","The Setup Wizard wil") Then WinActivate("Sun VirtualBox Setup","The Setup Wizard wil")
WinWaitActive("Sun VirtualBox Setup","The Setup Wizard wil")
Send("{ALTDOWN}n{ALTUP}")
WinWait("Sun VirtualBox License Agreement","I &accept the terms ")
If Not WinActive("Sun VirtualBox License Agreement","I &accept the terms ") Then WinActivate("Sun VirtualBox License Agreement","I &accept the terms ")
WinWaitActive("Sun VirtualBox License Agreement","I &accept the terms ")
ControlFocus("Sun VirtualBox License Agreement", "", "Button2")
Send("{ALTDOWN}n{ALTUP}")
WinWait("Sun VirtualBox Setup","")
If Not WinActive("Sun VirtualBox Setup","") Then WinActivate("Sun VirtualBox Setup","")
WinWaitActive("Sun VirtualBox Setup","")
Send("{ALTDOWN}n{ALTUP}")
sleep(1000)
ControlFocus("Sun VirtualBox Setup", "", "Button2")
Send("{space}")
Send("{ALTDOWN}n{ALTUP}")
WinWait("Sun VirtualBox ","Installing the Sun V")
If Not WinActive("Sun VirtualBox ","Installing the Sun V") Then WinActivate("Sun VirtualBox ","Installing the Sun V")
WinWaitActive("Sun VirtualBox ","Installing the Sun V")
Send("{ALTDOWN}y{ALTUP}")
WinWait("Sun VirtualBox Setup","")
If Not WinActive("Sun VirtualBox Setup","") Then WinActivate("Sun VirtualBox Setup","")
WinWaitActive("Sun VirtualBox Setup","")
Send("{ALTDOWN}i{ALTUP}")
WinWait("軟體安裝","繼續安裝這個軟體會在")
If Not WinActive("軟體安裝","繼續安裝這個軟體會在") Then WinActivate("軟體安裝","繼續安裝這個軟體會在")
WinWaitActive("軟體安裝","繼續安裝這個軟體會在")
Send("{ALTDOWN}c{ALTUP}")
WinWait("軟體安裝","")
If Not WinActive("軟體安裝","") Then WinActivate("軟體安裝","")
WinWaitActive("軟體安裝","")
Send("{ALTDOWN}c{ALTUP}")
WinWait("軟體安裝","")
If Not WinActive("軟體安裝","") Then WinActivate("軟體安裝","")
WinWaitActive("軟體安裝","")
Send("{ALTDOWN}c{ALTUP}")
WinWait("硬體安裝","您正要為這個硬體安裝")
If Not WinActive("硬體安裝","您正要為這個硬體安裝") Then WinActivate("硬體安裝","您正要為這個硬體安裝")
WinWaitActive("硬體安裝","您正要為這個硬體安裝")
Send("{ALTDOWN}c{ALTUP}")
WinWait("硬體安裝","您正要為這個硬體安裝")
If Not WinActive("硬體安裝","您正要為這個硬體安裝") Then WinActivate("硬體安裝","您正要為這個硬體安裝")
WinWaitActive("硬體安裝","您正要為這個硬體安裝")
Send("{ALTDOWN}c{ALTUP}")
Sleep(10000)
Send("{ALTDOWN}c{ALTUP}")
Sleep(3000)
Send("{ALTDOWN}n{ALTUP}")
WinWait("Sun VirtualBox Setup","Start Sun VirtualBox")
If Not WinActive("Sun VirtualBox Setup","Start Sun VirtualBox") Then WinActivate("Sun VirtualBox Setup","Start Sun VirtualBox")
WinWaitActive("Sun VirtualBox Setup","Start Sun VirtualBox")
Send("{SHIFTDOWN}{TAB}{SHIFTUP}")
Send("{SPACE}")
Send("{ALTDOWN}f{ALTUP}")

參考來源

[教學] 封裝AutoIt自動安裝程式 - 軟件討論區 - SUM-HK論壇提供/新聞/娛樂/數碼/音樂/電影等資訊~~ - Powered by Discuz! . Retrieved October 5, 2009, from http://sum-hk.marlito.com/redirect.php?tid=760&goto=lastpost.

VirtualBox 3.0.6 一鍵安裝 完整封裝 圖文教學(Autoit) ( 彈指瞬間 - 社群文章 ). . Retrieved October 5, 2009, from http://itgroup.blueshop.com.tw/moan/it_club?n=convew&i=12488.

2009年10月2日星期五

JAVA寄信問題「HELO requires domain address」的解決方法

image

當我利用VirtualBox架設虛擬機器時,會發現沒辦法正常地使用註冊信的功能。這是因為虛擬機器內部的domain name並不是其他domain name server認可的名稱,只是我測試用的名字。此時可以自行在伺服器當中新增此domain name,對應到127.0.0.1,也就是本機端,就可以解決此問題。

以下詳述這個問題的發生與解決過程。

虛擬機器中DSpace的郵件設定
##### Email settings ######

# SMTP mail server
mail.server = 127.0.0.1

# SMTP mail server authentication username and password (if required)
# mail.server.username = myusername
# mail.server.password = mypassword

# SMTP mail server alternate port (defaults to 25)
mail.server.port = 25

# From address for mail
mail.from.address = dspace-noreply@dspace-dlll.nccu.edu.tw

# Currently limited to one recipient!
feedback.recipient = dspace-help@dspace-dlll.nccu.edu.tw

# General site administration (Webmaster) e-mail
mail.admin = dspace-help@dspace-dlll.nccu.edu.tw

必須說明到,上述設定當中的「dspace-dlll.nccu.edu.tw」完全沒有註冊在任何domain name server當中。因此執行時就會發生錯誤。

認不出domain name的錯誤訊息

image

在此設定當中進入DSpace的使用者註冊時,就會發生錯誤。我們來到DSpace的記錄檔當中看看,預設位置在「[dspace]/log/dspace.log」,可以用文字編輯器來開啟。

錯誤訊息如下:

2009-10-02 23:58:27,828 INFO  org.dspace.app.webui.servlet.RegisterServlet @ anonymous:session_id=29633B32BF10EEEF95FCF4DC71B5C7FD:ip_addr=10.0.2.2:sendtoken_register:email=puddingchen.35@gmail.com
2009-10-02 23:58:30,669 INFO  org.dspace.app.webui.servlet.RegisterServlet @ anonymous:session_id=29633B32BF10EEEF95FCF4DC71B5C7FD:ip_addr=10.0.2.2:error_emailing:email=puddingchen.35@gmail.com
javax.mail.MessagingException: 501 5.0.0 HELO requires domain address

        at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363)
        at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375)
        at javax.mail.Service.connect(Service.java:275)
        at javax.mail.Service.connect(Service.java:156)
        at javax.mail.Service.connect(Service.java:105)
        at javax.mail.Transport.send0(Transport.java:168)
        at javax.mail.Transport.send(Transport.java:98)
        at org.dspace.core.Email.send(Email.java:362)
        at org.dspace.eperson.AccountManager.sendEmail(AccountManager.java:296)
        at org.dspace.eperson.AccountManager.sendInfo(AccountManager.java:256)
        at org.dspace.eperson.AccountManager.sendRegistrationInfo(AccountManager.java:101)
        at org.dspace.app.webui.servlet.RegisterServlet.processEnterEmail(RegisterServlet.java:287)
        at org.dspace.app.webui.servlet.RegisterServlet.doDSPost(RegisterServlet.java:202)
        at org.dspace.app.webui.servlet.DSpaceServlet.processRequest(DSpaceServlet.java:147)
        at org.dspace.app.webui.servlet.DSpaceServlet.doPost(DSpaceServlet.java:105)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

你可能會發現到IP很奇怪,因為這是VirtualBox配給的內部IP。

這段記錄的重點在於錯誤訊息「HELO requires domain address」,代表的意思是HELO認不出來「dspace-dlll.nccu.edu.tw」對應到哪台主機。

設定伺服器當中的domain name對照表

用指令列來修改「/etc/hosts」,增加下列設定:

127.0.0.1       dspace-dlll.nccu.edu.tw dspace-dlll

然後得重新啟動網路,指令是「/etc/init.d/network restart」

或著你也可以用圖形介面來設定。

image

先進入「網路」當中。

image 

切換到「主機」那一頁,然後按「新增」。

image

設定位址、要對應的主機名稱跟其別名。

image

最後記得要儲存才會生效。


以上,大功告成。用虛擬機器果然是比較麻煩了一些,不過也可以藉此在精進網路知識就是了。