Category Archives: Java

Tomcat 啟用 SSL 加密

當我們取得申請或自行產生的 certificate 及 private key 後,先用以下指令產生 keystore

openssl pkcs12 -export -out server.keystore -in server.cer -inkey server.key

接著執行以下指令檢查產生的 keystore 是否正確無誤

keytool -list -keystore server.keystore -storetype PKCS12

以上步驟完成後修改 tomcat 設定檔,啟用 SSL

<tomcat home>/conf/server.xml

<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
maxThreads=”150″ scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”conf/server.keystore”
keystorePass=”your_password”
keystoreType=”pkcs12″
/>

請依據您的環境修改 keystoreFile 指向正確的路徑及檔名,keystorePass 請換成正確的 keystore 密碼。Jboss 設定也非常類似,只是設定檔位置在 <jboss home>/server/default/deploy/jboss-web.deployer/server.xml。

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

POI 列印 Excel 的小技巧

1. 利用 jdk 6 新的 API java.awt.Desktop 列印

以 excel 為例,這個 API 會啟動目前的平台已經登記處理 xls 檔案的程式來列印指定的檔案,sample code 如下:

if ( Desktop.isDesktopSupported() ) {
Desktop desktop=Desktop.getDesktop();
if ( desktop.isSupported(Desktop.Action.PRINT) ) {
desktop.print(excelFile);
}
} else {
System.out.println(“debug: desktop not supported!”);
}

2. 列印 excel 檔案內所有的工作表

利用以上方法列印時,通常只會印出 excel 檔的第一個工作表,如果要印出所有工作表可以利用org.apache.poi.hssf.usermodel.HSSFSheet 的 setSelected method,例如

for(int i=1;i<sheetCount;i++) {

workbook.getSheetAt(i).setSelected(true);

}

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

ognl.MethodFailedException: Method “setQty” failed for object com.amjet.sales.model.Order

最近寫一個 struts2 action 傳回 json 資料,測試時發生上面的錯誤。原因是頁面的 jquery 元件透過 post method 送出 “order.qty” 的參數,struts2 的 interceptor 在收到參數後想要設定 action 內 order 物件的 qty property,事實上我不需要 struts2 作 parse 參數及設定物件的動作,參數我想在 action 內用 request.getParameter() 自己接取處理。以下的 action 設定範例可以讓 interceptor 忽略開頭為 order 的參數,由於 struts2 預設也會忽略開頭為 dojo,struts 的參數,我們也一併保留:

<action name=”updateSell” method=”jsonUpdate”
class=”com.amjet.sales.web.action.SellAction”>
<interceptor-ref name=”defaultStack”>
<param name=”params.excludeParams”>^order\..*,dojo\..*,^struts\..*</param>
</interceptor-ref>

<result type=”json”>
<param name=”target”>jquery</param>
</result>
</action>

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)
Loading...