Tag Archives: Glassfish

Hibernate 5 project deploy 到 glassfish4 server 問題

在 Glassfish 4.1.1 server 上會出現以下 Exception 而無法 deploy

Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V

主要是 Hibernate 5 需要 jboss-logging-3.3.0.Final.jar 而 glassfish module 目錄內的 jboss-logging.jar 版本比較舊

解決的方法是將 jboss-logging-3.3.0.Final.jar copy 到 glassfish module 目錄內,再將原本的 jar 檔改名,處理好後要 清除 glassfish server 的 cache ,再重新啟動 glassfish server 即可

參考 網址

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Glassfish 4 安裝 SSL certificate

Glassfish4 的憑證存放在 <glassfish 安裝目錄>/glassfish/domains/domain1/config 目錄內,先用以下指令匯入 CA 憑證

keytool -import -trustcacerts -alias myca -file ca.cer -keystore cacerts.jks

再利用以下指令匯入 server 憑證

keytool -importkeystore -srckeystore myserver.p12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS

匯入之後用 keytool -list -keystore keystore.jks 指令確認匯入憑證在 keystore 內的 alias

登入 admin console 後在選單 Configurations > server-config > HTTP Service > Http Listeners > admin-listener 設定的 SSL 頁籤把 Certificate NickName 改為剛才查到的 alias (預設為 ‘s1as’) 儲存後重新啟動 glassfish server 即可

備註:

  1. keystore 預設密碼為 changeit
  2. 匯出的 .p12 檔密碼似乎必須與 keystore 密碼相符
  3. glassfish 的 http-listener-2 是有 SSL 的 8181 port,設定憑證方式跟 admin console 相同
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Glassfish Restful cause 500 error

Controller code 如下

@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Personnel> getAllPersonnel() {
List<Personnel> results=personnelDAO.getPersonnel();
return results;
}

Model 造成問題的 code

@OneToMany(mappedBy=”personnel”)
private List<Signup> signups;

因為有 1 對多的關聯,又沒有指定 fetch type,當 Signup table 沒有關聯資料時,signups 是未初始狀態,造成 server return 500 error,關聯宣告修改如下即可

@OneToMany(mappedBy=”personnel”, fetch=FetchType.EAGER)

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Glassfish + MySQL = No database selected

最近在 Glassfish application server 上設定 MySQL datasource 及 connection pool 後,以 JPA 存取 database 時卻出現 No database selected 錯誤訊息,在這個 網址 找到了答案。

建立 connection pool (教學網址) 時有很多 additional property,其中有一個 Url 要填例如 jdbc:mysql://localhost:3306/mydb,填好連資料庫就出現標題的錯誤,要把 property name ‘Url’ 改成 ‘URL’ 才可以正常連線。

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...