2013年2月28日 星期四

在 eclipse swt 的介面上放 tool tip

實作 tool tip 時,其實就是在介面上面放一個滑鼠停留的事件
當事件發生時,要求程式畫出一個文字欄位,把 tool tip 要顯示的東西放在欄位上。
範例的滑鼠停留事件可以參考 [1]。

2013年2月25日 星期一

在 OpenJDK 上使用 JavaMail 的問題

目前還在尋找問題中。
已經發現的問題是 JavaMail 在建立 Socket 連線時會噴以下的 Exception:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
  nested exception is:
        java.io.IOException: Can't create MailSSLSocketFactory
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1966)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
        at javax.mail.Service.connect(Service.java:295)
        at javax.mail.Service.connect(Service.java:176)
        at org.twgogo.jimwayne.mail.MailService.sendMail(MailService.java:266)
        at org.twgogo.jimwayne.mail.MailService.sendMail(MailService.java:157)
        at org.twgogo.jimwayne.main.Main.sendMail(Main.java:52)
        at org.twgogo.jimwayne.main.Main.main(Main.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.io.IOException: Can't create MailSSLSocketFactory
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:344)
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:239)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1929)
        ... 12 more
Caused by: java.security.KeyStoreException: problem accessing trust storejava.io.EOFException
        at sun.security.ssl.TrustManagerFactoryImpl.engineInit(TrustManagerFactoryImpl.java:75)
        at javax.net.ssl.TrustManagerFactory.init(TrustManagerFactory.java:247)
        at com.sun.mail.util.MailSSLSocketFactory$MailTrustManager.<init>(MailSSLSocketFactory.java:333)
        at com.sun.mail.util.MailSSLSocketFactory$MailTrustManager.<init>(MailSSLSocketFactory.java:331)
        at com.sun.mail.util.MailSSLSocketFactory.<init>(MailSSLSocketFactory.java:115)
        at com.sun.mail.util.MailSSLSocketFactory.<init>(MailSSLSocketFactory.java:94)
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:337)
        ... 14 more

no object DCH for MIME type multipart/mixed

在嘗試把寄信的程式寫成獨立的 Java 應用程式時,遇到以下的 Exception:
javax.mail.MessagingException: IOException while sending message;
  nested exception is:
 javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; 

Google 了一下,雖然還蠻快找到解法,不過還不是非常了解這個問題的原因
可能是系統沒有預設告訴 JavaMail 要如何處理特定的 MIME 格式吧。

2013年2月23日 星期六

在 Linux 上檢查某個 port 是否可連接

當遇到某些網路不通的狀況時,可能會想確認是程式的問題還是網路的問題
在 Linux 上可以直接利用 nmap 這個工具來確認。

2013年2月22日 星期五

2013年2月21日 星期四

使用 ddclient 更新 No-IP

ddclient 本身好像沒有特別為 No-IP 設定一個 Protocol,所以設定時可能會不知道要選什麼。

TP-LINK TL-WR1043ND 刷機

第一次嘗試要將分享器刷成第三方韌體,其實還蠻簡單的!XD
教學可以參考 [1],其實沒什麼特別的步驟
就去 dd-wrt 官方的 FTP 上找到要裝的韌體,然後下載「factory-to-ddwrt.bin」
檔名很明顯可以看出,這個檔案就是專門用來把分享器從原廠刷成 dd-wrt 用的。
其中在官方的 FTP 上,每個版本的韌體點進去都可以看到一大堆支援的分享器的資料夾
找到自己的分享器後,就可以下載到對應自己分享器的韌體了。

2013年2月6日 星期三

在 JAX-RS 實現上傳檔案及下載檔案

在 JAX-RS 的環境中,如果遇到需要自行客製化回應的訊息時,可以利用 javax.ws.rs.core.Response 物件來實現。

2013年2月4日 星期一

Same origin policy

依據 Wikipedia [1] 上對於 Same origin policy 的描述如下:
In computing, the same origin policy is an important security concept for a number of browser-side programming languages, such as JavaScript. The policy permits scripts running on pages originating from the same site – a combination of scheme, hostname, and port number[1] – to access each other's methods and properties with no specific restrictions, but prevents access to most methods and properties across pages on different sites.