摘要: 服務端配置
cas是個好東西,很靈活很好用,但是配置起來很麻煩,網上資料比較零碎。不弄個三五天根本不知道其中的原理,終于在多天的奮斗中配置成功,現在將配置的一些過程記錄下來供大家參考。
cas官方網站
http://www.jasig.org/cas
下載最新的服務端 CAS Server 3.3.3 Final
解壓后將modules下面的cas-server-webapp-3.3...
閱讀全文
posted @
2009-10-20 18:21 流腥魚 閱讀(20443) |
評論 (13) |
編輯 收藏
eclipse 中使用 svn 插件,原本正常,未作任何更改,突然有一天, eclipse 中查看文件時,文件后面的 版本號 、 文件的狀態圖標 等等都不見了。
檢查插件都在,更新,提交等操作都能正常使用,唯獨看不到狀態了。
經過一番查找,找到問題解決辦法。
打開 : windows ->preferences->General->Appearance->Lable Decorations 勾選其中的 SVN 項即可。
同時,還可以打開 windows ->preferences->Team -> SVN 中做相關設置。
posted @
2009-05-21 12:19 流腥魚 閱讀(1472) |
評論 (3) |
編輯 收藏
之前看到很多人一直都問這個問題,不過當時我沒當一回事,因為在 CSS 中要垂直居中,多數是在有高度的情況下,或者容器高度不定的情況下才用,看上去比較舒服,而且實現的方法也不少,不一定要拘泥于和 table 布局一樣。不過最近有人問了幾個例子,看來對此的需求還不少。現在就把我經驗拿出來分享一下,希望大家鼓鼓掌。
首先,要有一個概念:凡是 table 布局可以實現的,CSS 一定可以實現。CSS 可以實現的,table 未必能做到。
現在來幾個例子:
一、單行內容的居中
只考慮單行是最簡單的,無論是否給容器固定高度,只要給容器設置 line-height 和 height,并使兩值相等,再加上 over-flow: hidden 就可以了
.middle-demo-1{
height: 4em;
line-height: 4em;
overflow: hidden;
}
優點:
1. 同時支持塊級和內聯極元素
2. 支持所有瀏覽器
缺點:
1. 只能顯示一行
2. IE中不支持<img>等的居中
要注意的是:
1. 使用相對高度定義你的 height 和 line-height
2. 不想毀了你的布局的話,overflow: hidden 一定要
為什么?
請比較以下兩個例子:
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
上一個高度是用的絕對單位px,并且沒有隱藏溢出,下一個高度用的單位是相對單位em,并且隱藏了溢出。如果你的瀏覽器支持放大字體,那么盡情地放大字體,看看會出現什么效果。
二、多行內容居中,且容器高度可變
也很簡單,給出一致的 padding-bottom 和 padding-top 就行
.middle-demo-2{
padding-top: 24px;
padding-bottom: 24px;
}
優點:
1. 同時支持塊級和內聯極元素
2. 支持非文本內容
3. 支持所有瀏覽器
缺點:
容器不能固定高度
三、把容器當作表格單元
CSS 提供一系列diplay屬性值,包括 display: table, display: table-row, display: table-cell 等,能把元素當作表格單元來顯示。這是再加上 vertical-align: middle, 就和表格中的 valign="middle" 一樣了。
.middle-demo-3{
display: table-cell;
height: 300px;
vertical-align: middle;
}
可惜IE不支持這些屬性,不過在其他瀏覽器上顯示效果非常完美。
要注意的是:和一個合法的<td>元素必須在<table>里一樣,display: table-cell 元素必須作為 display: table 的元素的子孫出現。
優點:
不用說了吧,就是表格,效果和表格一模一樣
缺點:
IE下無效
四、以毒攻毒!用 IE 的 bug 解決 IE 中的絕對居中
先不得不說一句,IE 真的是個很爛的瀏覽器,CSS1中的定義都不支持,害得要我們轉個大圈子來造居中。不過就像我說的,凡是 table 布局可以實現的,CSS 一定可以實現,即使在 IE 里也不例外。我研究 IE layout 模式多年,還是找出了一個可以在 IE 中絕對居中的方法。這個方法就是基于 IE layout 的 bug,也可以算以毒攻毒。至于原理,不要問我,這是獨門秘學,何況三言兩語也講不清楚,只要好用就行
.middle-demo-4{
height: 300px;
position: relative;
}
.middle-demo-4 div{
position: absolute;
top: 50%;
left: 0;
}
.middle-demo-4 div div{
position: relative;
top: -50%;
left: 0;
}
五、整合三和四,寫出支持所有瀏覽器的垂直居中容器!
思路是利用 IE 和 非IE 瀏覽器的 CSS hack, 整合三和四的CSS,寫出兼容主流瀏覽器的垂直居中容器。具體代碼就不給出了,大家權當作練習練習。例子可以在下面的附錄中找到。
最終實測支持的瀏覽器:IE6+, Mozilla 1.7, Netscape Navigator 8, Opera 8.0+, Firefox 1.0+ 和 Safari 1.0+IE5 下需要加上對合適模型的補正。
推測支持的瀏覽器:Mozilla 1.5+, Netscape Navigator 7+, Opera 7+
未測試瀏覽器:Konqueror
最后附上自己寫的,所有居中布局的范例網頁,大家不明白可以參考。
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
posted @
2009-04-17 19:59 流腥魚 閱讀(460) |
評論 (0) |
編輯 收藏
現階段我們在開發報表的時候,是使用jdbc鏈接數據庫的,為提高報表的運行效率和穩定性,使用連接池進行管理。比較簡便和低耦合的解決辦法,使用jndi連接池。
jdbc和jndi的區別
JDBC -最基本的連接數據庫的方式, 每次對數據庫打交道的時候 ,連接數據庫是需要實例下你實現連接數據庫的方法或者類。
JNDI DataSource 英文全稱是:Java Naming and Directory Interface java 命明接口,當服務啟動時 事先把連接數據庫的已經連好多條,具體多少條你可以設置,存放在tomcat容器里,用的時候可以直接使用, 不用再實例化得到連接, 相對與jdbc效率要快點
在eclipse設計報表的時候,我們使用jdbc鏈接數據庫做測試,當到了tomcat運行環境中切換到jndi連接池,這是比較方便的開發方法。
實現步驟:
1.tomcat配置jndi連接池
在 {tomcat目錄}\webapps\{項目名}\META-INF 中新增context.xml文件,配置代碼如下
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
auth="Container"
name="jdbc/travel_agency"
type="javax.sql.DataSource"
maxIdle="5"
maxWait="-1"
driverClassName="com.mysql.jdbc.Driver"
username="itravel"
password="709394"
url="jdbc:mysql://192.168.1.100/travel_agency?useUnicode=true&characterEncoding=UTF-8"
maxActive="10"/>
</Context>
2.在web.xml中加入配置
<resource-ref>
<description>Database Source</description>
<res-ref-name>jdbc/travel_agency</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.實例報表中數據源代碼
1
<data-sources>
2
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="數據源" id="227">
3
<property name="odaDriverClass">com.mysql.jdbc.Driver</property>
4
<property name="odaURL">jdbc:mysql://192.168.1.100/travel_agency</property>
5
<property name="odaUser">itravel</property>
6
<encrypted-property name="odaPassword" encryptionID="base64">NzA5Mzk0</encrypted-property>
7
<property name="odaJndiName">java:comp/env/jdbc/travel_agency</property>
8
</oda-data-source>
9
</data-sources>
除了第7行 <property name="odaJndiName">java:comp/env/jdbc/travel_agency</property>,其余是我們的之前的配置。用了第7行的代碼,表示該報表支持jndi數據源,birt在運行報表的時候,會先用jndi去連接,如果失敗了再用jdbc鏈接,這樣做的好處就是,我們在開發報表的時候,沒有放到web環境中,可以使用jdbc,當放到tomcat中,因為有了第7行的配置。默認采用jdni連接。
posted @
2009-03-19 10:46 流腥魚 閱讀(3638) |
評論 (2) |
編輯 收藏
從論壇的一篇文章(http://www.javaeye.com/topic/335078)得知,在BIRT VIEWER SERVLET內部也有認證接口代碼,只是簡單的返回了true,沒有做處理。BIRT VIEWER SERVLET是報表處理的入口,該接口如果返回flase,那么報表將不會顯示,目標就是在該接口加入我們自己的邏輯實現,本階段先實現簡單的安全認證,即在沒有登錄的情況下無法訪問報表。
處理步驟:
1.把birt viewer項目和現有項目整合在一起(為了讓birt viewer項目能獲取到現有項目的session)
2.修改BIRT VIEWER SERVLET類,該類源碼在org.eclipse.birt.report.servlet.BirtEngineServlet下面,找到函數經行修改,紅色為新增部分
/**
* Local authentication.
*
* @param request
* incoming http request
* @param response
* http response
* @return
*/
protected boolean __authenticate( HttpServletRequest request,
HttpServletResponse response )
{
//報表權限,沒有登錄訪問不了
if(request.getSession().getAttribute("user")==null)
{
return false;
}
return true;
}
3.將該類編譯后放進BIRT包里面。
posted @
2009-03-19 10:42 流腥魚 閱讀(2031) |
評論 (2) |
編輯 收藏
http://www.overset.com/2008/05/12/multiday-calendar-datepicker-jquery-plugin/
posted @
2009-02-17 00:26 流腥魚 閱讀(1766) |
評論 (1) |
編輯 收藏
1.組織機構的完善
工作流中的權限設置往往是比較復雜的,如審批中經常需要某部門的主管審批,或者某個人的上級領導審批等等。
為了滿足需求的多樣化,在原來的組織機構基礎上引入崗位的模型,每個員工都對應一個部門和一個崗位。部門中設置主管的崗位。有個這個關系,這樣可以比較清楚地查找某個人的上級領導,或者是某個部門的主管。

2.工作流節點中設置執行者方案
6種方式定義執行者
1.指定人
通過在組織結構樹中點選具體的某些人。
2.指定崗位
在崗位樹中指定執行的崗位。
3.指定部門
在組織機構樹中指定執行的部門
4.指定角色
角色是某些邏輯上相識的一個組定義。選擇某個角色。
5.相對執行人
在流程還沒有開啟之前,執行者是誰是未知的,所以這里的指定是相對的,當流程開啟的時候才能確定,這里可以設置相對執行人的部門主管、相對執行人的上級主管、相對執行人的所在部門、執行人自己這4個情況。
6.表單確定
有些流程不在定義的時候確定,是由上一節點執行者確定的。
前五種方式可以混合,只要登錄者復合定義制定人的并集,就有權限在待辦任務中看到等待處理任務并有權限執行。
posted @
2009-02-12 17:27 流腥魚 閱讀(1873) |
評論 (1) |
編輯 收藏
前段時間有個JSP網站要在服務器上部署,由于服務器上根本沒配置過jsp環境,于是裝了Jdk和Tomcat,過程還算順利,很快就安裝好了,但是Tomcat的默認端口是8080,訪問網站也帶個端口多么不爽,因為服務器上有很多ASP站點,又不能不用IIS,于是第一個想到的便是跟IIS6.0整合,baidu google了大半天,搜出來文章倒是很多,也不知是由于我安裝的是最新的JDK和Tomcat,的原因還是權限原因(為了安全,更改過多處權限),總之就是不成功,換了兩臺服務器也沒配置成功,到最后不是不能正確運行,就是提示函數不正確,到網上搜,很多人問之類的問題,但幾乎沒有人正了把經回答的,有些“熱心”的倒還說兩句“重裝一下看看?”“再從頭到尾檢查一遍試試”。。。算了還是自己搞吧。
繼續搞啊搞,還是不行,最后干脆不搞了,心想即使弄好了,性能還不知怎么樣呢。于是想另外的解決方法,因為服務器所在的網絡有空閑的ip,便想何不讓IIS用一個ip,Tomcat用一個ip,都使用80端口?問了幾個人都說不行,兩個軟件用同一個端口那不沖突么,也有的說兩個ip那得需要兩塊網卡啊。服務器上倒是有兩塊網卡,但就插了一根網線,另一個閑著。我就是要用一塊網卡,兩個ip,因為在TCP/ip協議屬性-》高級中,一塊網卡是可以添加多個ip地址的,iis與Tomcat分別監聽不同ip的80端口,OK,開始吧。
我們知道IIS默認情況下是監聽所有ip地址的80端口的,也就是說,在網站屬性中只要選擇“全部未分配”,則該網站就可以使用所有本機可用的ip地址。顯然這個不符合我們現在的要求,我們首先將IIS所有站點當中全部改為指定IIS要監聽的IP地址,包括默認站點,例如全部改為61.156.31.1。再在網卡中加一個ip,也就是在TCP/ip高級屬性中再加一個可用的ip,這樣一塊網卡就可以使用兩個或更多個ip了,看似很簡單的操作可能有很多人不知道,認為一塊網卡只能設一個ip,呵呵。
接下來最關鍵的一步開始了,便是禁用IIS的套接字池(如果這一步沒調好,便不會成功),在微軟官方網站上有解釋:
http://support.microsoft.com/kb/238131/zh-cn
概要
在下列情況下,您可能需要禁用套接字池:
1、承載的站點數目不多。
2、有特殊的安全考慮。
3、另一個應用程序或服務器需要某個 IP 地址上的端口 80。
更多信息
套接字池會導致“Internet 信息服務”(IIS) 偵聽所有 IP 地址,這樣,可能會對具有多個網絡的安全域造成安全隱患。另外,帶寬調節和性能調整會應用于所有針對同一端口(例如,端口 80)進行配置的 Web 站點。如果基于每個站點進行帶寬調節或性能調整,則必須禁用套接字池。
由于 DisableSocketPooling 在 IIS 6.0 元數據庫架構 (MBSchema.xml) 中被定義為有效屬性,所以,您仍然可以使用 Adsutil.vbs 設置該屬性,但這種設置不起作用。IIS 6.0 中的功能是新增的核心級別驅動程序HTTP.sys 的一部分。要配置 HTTP.sys,您必須使用Httpcfg.exe。 有關如何在 IIS 6.0 中禁用套接字池的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
813368 (http://support.microsoft.com/kb/813368/) IIS 6.0:設置配置數據庫數據 DisableSocketPooling 沒有作用
要禁用套接字池,請執行下列步驟:
1. 打開命令提示符并確保您位于 X:\Inetpub\Adminscripts 文件夾(其中 X 是 IIS 安裝驅動器)中。為此,請在命令提示符下鍵入以下
行:
X:
CD\Inetpub\Adminscripts
2. 打開 Adminscripts 文件夾后,請在命令提示符下鍵入以下行:
cscript adsutil.vbs set w3svc/disablesocketpooling true
3. 該命令反饋如下:
disablesocketpooling :(BOOLEAN) True
4. 停止 IIS Admin 服務,然后再啟動它。
5. 重新啟動 WWW 服務。
好了,接下來設置IIS要監聽的ip地址。到2003的CD下的 support/tools/Support.cab。解壓出httpcfg.exe文件,COPY到
windows/system32/目錄下,用法自己看幫助
命令行:
綁定到某IP: httpcfg set iplisten -i 61.156.31.1
即命令使用IIS的只監聽指定的IP及端口
查看綁定: httpcfg query iplisten
刪除綁定: httpcfg delete iplisten -i 61.156.31.1
IIS部分到此就設置好了,接下來設置Tomcat,當然或者你用Apache,Resin等也都可以,在Tomcat的配置文件Server.xml里找到
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" address="61.156.31.2"/>
在后面添加上需要Tomcat監聽的ip地址即可,例如:address="61.156.31.2" Apache,Resin或者其他WEB服務器軟件都應該有相應的設置的,自己找一下即可。
好了接下來重啟IIS,重啟Tomcat或Apache,怎么?啟動失敗?提示端口占用?是啊,我也遇到這種情況,搗鼓了大半天要是再不成功我就要放棄了。實在無奈之下重啟了一下服務器,哇,好啦。測試一下61.156.31.1訪問的是IIS,61.156.31.2訪問的是Tomcat可愛的大貓。
實際上,實現IIS和Apache或Tomcat公用80的方法還很多,例如IIS設置8080,Apache設置80,利用Apache反向代理IIS的8080,當然也可以用NT下面的squid。或者在IIS中安裝IIS的Isapi Rewrite,利用IIS的反向代理代理Apache,當然如果IIS站點少,Apache站點多就用第一種方法,IIS站點多,Apache站點少就用第二種方法,但這兩種方法在性能上都不是很好,Apache在Windows下的反向代理也有BUG,經常出現Proxy Error的提示,至于IIS的反向代理沒用過,因為IIS的ISAPI帶反向代理功能的是要收費的。http://www.xpb.cn/blog/623.html
posted @
2008-12-26 18:36 流腥魚 閱讀(3566) |
評論 (1) |
編輯 收藏
eclipse 中使用 svn 插件,原本正常,未作任何更改,突然有一天, eclipse 中查看文件時,文件后面的 版本號 、 文件的狀態圖標 等等都不見了。
檢查插件都在,更新,提交等操作都能正常使用,唯獨看不到狀態了。
經過一番查找,找到問題解決辦法。
打開 : windows ->preferences->General->Appearance->Lable Decorations 勾選其中的 SVN 項即可。
posted @
2008-12-16 16:34 流腥魚 閱讀(1060) |
評論 (1) |
編輯 收藏