public String pdf(){
query 後的datasource
this.query();
用來裝相關pars用的
Map pars = new HashMap();
pars.put("title", "jimmy title 測試");
FacesContext fc = FacesContext.getCurrentInstance();
fc.responseComplete();這個method沒處理會發生Servlet response already use stream, Writer not possible
透過 FacesContext 來取得 HttpServletResponse
HttpServletResponse res = (HttpServletResponse) fc.getExternalContext().getResponse();
透過 FacesContext 來取得 ServletContext
ServletContext servletContext = (ServletContext) fc.getExternalContext().getContext();
String path = servletContext.getRealPath("/report/test.jasper");
File jasperFile = new File(path);
try {
ReportUtils.createPdf(res, jasperFile, pars, this.userlist, 1);
} catch (Exception ex) {
}
return null;
}
2007年11月12日 星期一
2007年11月11日 星期日
建立 DBCP ConnectionPool (不使用server.xml方式)
利用此方法也是另一種設定connection pool 的方法 , 不一樣的地方是, 這種方法設定相關的properties值是寫在程式, 若是要方便維護 , 就得用另一種方法, 有空再來寫吧。
詳細說明直接參考dbcp docs的說明就很清楚了。
package com.cps.sql;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS;
import org.apache.commons.dbcp.datasources.SharedPoolDataSource;
public class connectionManager
{
private static DataSource ds;
public static DriverAdapterCPDS cpds ;
public static SharedPoolDataSource tds;
private final static int maxActive = 100;
private final static int maxIdle = 10;
private final static int maxWait = 10;
private final static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private final static String url ="jdbc:sqlserver://test.infinitiessoft.com:1433";
private final static String username = "test";
private final static String password = "1234";
static
{
cpds = new DriverAdapterCPDS();
try {
cpds.setDriver(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
cpds.setUrl(url);
cpds.setUser(username);
cpds.setPassword(password);
tds = new SharedPoolDataSource();
tds.setConnectionPoolDataSource(cpds);
tds.setMaxActive(maxActive);
tds.setMaxIdle(maxIdle);
tds.setMaxWait(maxWait);
ds = tds;
}
public static Connection getConnection() throws SQLException
{
Connection cn = null;
status();//印出連線狀態
//判斷連線的數量是否超過設定的數值
if(tds.getNumActive() < tds.getMaxActive()){
return ds.getConnection();
}else{
return cn;
}
}
public static void status(){
System.out.println("[NumActive]:"+tds.getNumActive());
System.out.println("[MaxActive]:"+tds.getMaxActive());
System.out.println("[MaxIdle]:"+tds.getMaxIdle());
}
public final static void freeConnection(Connection con){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public final static int getActiveCon(){
return tds.getMaxActive();
}
public final static int getIdle(){
return tds.getMaxIdle();
}
public final static int getNumActive(){
return tds.getNumActive();
}
public static void main(String[] a){
try {
Connection con1 = connectionManager.getConnection();
Connection con2 = connectionManager.getConnection();
for(int i = 0 ; i<100;i++){
connectionManager.getConnection();
}
connectionManager.freeConnection(con1);
connectionManager.freeConnection(con2);
Connection con3 = connectionManager.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2007年11月6日 星期二
Change Tomcat Port
這個問題,應該會滿常遇到的才對
tomcat default port 是 8080 ,若是要改成80或是其它的port 做法如下:
以tomcat 5.5.25為例
1.先打開 tomcat\conf 下的server.xml
2. 找到 line 94port ="8084" .....> 將port的部份改掉就可以了。
tomcat default port 是 8080 ,若是要改成80或是其它的port 做法如下:
以tomcat 5.5.25為例
1.先打開 tomcat\conf 下的server.xml
2. 找到 line 94
訂閱:
文章 (Atom)