
2009年9月3日
grails應(yīng)用以war包的方式發(fā)布到weblogic本來應(yīng)該是沒有什么問題的,也不需要像網(wǎng)上說的那樣進行weblogic的配置,但是有兩個小問題在實際的使用中需要注意:
1.我的應(yīng)用中,使用了spring-security-cas的插件來實現(xiàn)cas client,但是不知道為什么在生產(chǎn)war包是,在web.xml中,有兩個CAS Single Sign Out Filter的mapping,結(jié)果導(dǎo)致發(fā)布失敗,需要手工刪除一個(目前的解決辦法)
2.grails的urlmapping插件,如果映射“/”到某個action,目前好像是不成功的,但是只要不是“/”,則沒有這個問題。如果默認(rèn)的根目錄不是index.gsp,這個可能需要在訪問“/”時進行跳轉(zhuǎn)的處理。
posted @
2011-02-09 16:21 雪地孤鴻 閱讀(514) |
評論 (0) |
編輯 收藏
1.weblogic必須是10.3.4.0或以上版本,由于cas server采用了spring 2.5的版本,使用JPA2.0的原因,weblogic10.3.4之前的版本不支持jpa2.0
2.cas server webapp 如果以war的方式發(fā)布,會因為log4j.xml的問題而不能正常發(fā)布,具體原因還沒有完全弄清楚,但是如果以解開后的文件夾目錄的方式發(fā)布則沒有問題。
posted @
2011-02-09 16:16 雪地孤鴻 閱讀(3249) |
評論 (2) |
編輯 收藏
測試環(huán)境下使用的是mysql數(shù)據(jù)庫,切換到正式的oralce數(shù)據(jù)庫中去發(fā)現(xiàn)cas server是無效的,主要的原因是由于數(shù)據(jù)庫的差異導(dǎo)致的
認(rèn)證用戶的sql語句在mysql
下為:
select password from user_login where username=? and e
nabled=true
而在oracle下應(yīng)該為
select password from user_login where username=? and
enabled=1
主要由于oralce和mysql對boolean字段的處理不一致導(dǎo)致的。
posted @
2011-01-26 09:05 雪地孤鴻 閱讀(708) |
評論 (0) |
編輯 收藏
cas server logout后,默認(rèn)是停留在cas的退出頁面,一般我們需要重新轉(zhuǎn)向到客戶端網(wǎng)站的登錄或是相關(guān)的頁面,一般需要進行一下配置
1.cas-server端,配置文件為/WEB-INFO/cas-servlet.xml中的logoutController
<bean id="logoutController" class="org.jasig.cas.web.LogoutController"
p:centralAuthenticationService-ref="centralAuthenticationService"
p:logoutView="casLogoutView"
p:warnCookieGenerator-ref="warnCookieGenerator"
p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
p:followServiceRedirects="true"/>
posted @
2011-01-21 13:38 雪地孤鴻 閱讀(1051) |
評論 (1) |
編輯 收藏
經(jīng)過將近兩天的測試,參考眾多網(wǎng)友的貢獻,終于完成了對cas的主要配置和測試,現(xiàn)記錄如下
基本需求:
1.cas server-3.4.5,casclient-3.2(官方版本),均可在cas官方網(wǎng)站下載,http://www.jasig.org
2.使用低成本的http協(xié)議進行傳輸,俺買不起ssl證書
3.通過jdbc進行用戶驗證
4.需要通過casserver提供除登錄用戶名以外的附加信息
參考資料:
1.cas官方網(wǎng)站的用戶幫助手冊和wiki
2.網(wǎng)友“城市獵人”的blog,http://yuzhwe.javaeye.com/blog/830143
3.網(wǎng)友“悟空悟道”的blog,http://llhdf.javaeye.com/blog/764385
4.其他網(wǎng)友貢獻的相關(guān)的blog,都是通過google出來,就不一一列出了,一并致謝!!!
好了,下面進入正題,如果您不想測試中出現(xiàn)異常情況,或是獲取不到相關(guān)數(shù)據(jù),請關(guān)注文中的紅色字體部分。
(1)使用http協(xié)議的設(shè)置,如果您也像我一樣,買不起ssl數(shù)字證書,對安全的要求也不是特別的搞,下面的配置就可以幫助解決這個問題:
在cas-server-webapp中的/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml文件中有如下配置
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="true" //默認(rèn)為true,使用https,如果只需要http,修改為false即可
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
(2)使用jdbc數(shù)據(jù)源進行用戶認(rèn)證,需要修改cas的authenticationHandlers方式,在文件/WEB-INF/deployerConfigContext.xml有如下配置:
<property name="authenticationHandlers">
<list>
<!--
| This is the authentication handler that authenticates services by means of callback via SSL, thereby validating
| a server side SSL certificate.
+-->
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" />
<!--
| This is the authentication handler declaration that every CAS deployer will need to change before deploying CAS
| into production. The default SimpleTestUsernamePasswordAuthenticationHandler authenticates UsernamePasswordCredentials
| where the username equals the password. You will need to replace this with an AuthenticationHandler that implements your
| local authentication strategy. You might accomplish this by coding a new such handler and declaring
| edu.someschool.its.cas.MySpecialHandler here, or you might use one of the handlers provided in the adaptors modules.
+-->
<!--<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />-->
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="select password from userInfo where username=? and enabled=true" />
//用戶密碼編碼方式
<property name="passwordEncoder"
ref="passwordEncoderBean"/>
</bean>
</list>
</property>
該屬性中的list只要用一個認(rèn)證通過即可,建議將紅色部分放在第一位,如果確認(rèn)只用jdbc一種方式,其他認(rèn)證方式均可刪除。另外需要在在文件中添加datasoure和passordEncoder兩個bean,如下
<!-- Data source definition -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8</value> //如果使用mysql數(shù)據(jù)庫,應(yīng)該加上后面的編碼參數(shù),否則可能導(dǎo)致客戶端對TGT票據(jù)無法識別的問題
</property>
<property name="username"><value>root</value></property>
<property name="password"><value>password</value></property>
</bean>
<bean id="passwordEncoderBean" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="SHA1" /> //cas
server默認(rèn)支持MD5和SHA1兩種編碼方式,如果需要其他的編碼方式例如SHA256,512等,可自行實現(xiàn)org.jasig.cas.authentication.handler.PasswordEncoder接口
</bean>
附加備注:如果您是使用cas server的源碼自行編譯的話,需要在cas-server-web模塊的pom.xml中添加如下模塊的依賴:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${project.version}</version>
</dependency>
并添加對應(yīng)數(shù)據(jù)庫的jdbc的jar包。
(3)讓cas server提供更多的用戶數(shù)據(jù)共客戶端使用
通過測試,由于cas的代碼更新過程中的變化較大,所以包兼容的問題好像一直存在,在測試中我就碰到過,花費時間比較多,建議同學(xué)們在使用過程中使用官方的最新的發(fā)布版本。在我使用的這個版本中,請參考前面的關(guān)于server和client端的版本說明,應(yīng)該沒有包沖突的問題,測試通過。下面進行配置,配置文件:/WEB-INF/deployerConfigContext.xml
<property name="credentialsToPrincipalResolvers">
<list>
<!--<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />-->
<!-- modify on 2011-01-18,add user info -->
<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >
<property name="attributeRepository" > //為認(rèn)證過的用戶的Principal添加屬性
<ref local="attributeRepository"/>
</property>
</bean>
<bean
class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" />
</list>
</property>
修改該文件中默認(rèn)的 attributeRepositorybean配置
<!-- 在這里配置獲取更多用戶的信息 -->
<bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
<constructor-arg index="0" ref="dataSource" />
<constructor-arg index="1" value="select id as UId, password_hint as ph from userInfo where username=? and enabled=true" />
<property name="queryAttributeMapping">
<map>
<entry key="username" value="uid"/><!-- 這里必須這么寫,系統(tǒng)會自己匹配,貌似和where語句后面的用戶名字段的拼寫沒有什么關(guān)系 -->
</map>
</property>
<!-- 要獲取的屬性在這里配置 -->
<property name="resultAttributeMapping">
<map>
<entry key="UId" value="userId" /> //key為對應(yīng)的數(shù)據(jù)庫字段名稱,value為提供給客戶端獲取的屬性名字,系統(tǒng)會自動填充值
<entry key="ph" value="passwordHint" />
</map>
</property>
</bean>
備注:網(wǎng)上有很多的關(guān)于這個的配置,但是如果您使用的是我提供的版本或是高于這個版本,就應(yīng)該象上面這樣配置,無用質(zhì)疑,網(wǎng)上大部分的配置都是基于
person-directory-impl,person-directory-api
1.1左右的版本,而最新的cas使用的是1.5的版本,經(jīng)過查看源代碼和api docs確定最新版本的屬性參數(shù)如上配置。
修改該xml文件中最后一個默認(rèn)的serviceRegistryDao bean中的屬性全部注釋掉,或者刪除,
這個bean中的RegisteredServiceImpl的ignoreAttributes屬性將決定是否添加attributes屬性內(nèi)容,默認(rèn)為false:不添加,只有去掉這個配置,
cas server才會將獲取的用戶的附加屬性添加到認(rèn)證用的Principal的attributes中去,我在這里犯過這樣的錯誤,最后還是通過跟蹤源碼才發(fā)現(xiàn)的。
<bean
id="serviceRegistryDao"
class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<!--
<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="0" />
<property name="name" value="HTTP" />
<property name="description" value="Only Allows HTTP Urls" />
<property name="serviceId" value="http://**" />
</bean>
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="1" />
<property name="name" value="HTTPS" />
<property name="description" value="Only Allows HTTPS Urls" />
<property name="serviceId" value="https://**" />
</bean>
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="2" />
<property name="name" value="IMAPS" />
<property name="description" value="Only Allows HTTPS Urls" />
<property name="serviceId" value="imaps://**" />
</bean>
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="3" />
<property name="name" value="IMAP" />
<property name="description" value="Only Allows IMAP Urls" />
<property name="serviceId" value="imap://**" />
</bean>
</list>
</property>-->
</bean>
修改WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,如下:
<%@ page session="false"%>
<%@ taglib prefix="c" uri=">
<%@ taglib uri="
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>${fn:escapeXml(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.id)}</cas:user>
<c:if test="${not empty pgtIou}">
<cas:proxyGrantingTicket>${pgtIou}</cas:proxyGrantingTicket>
</c:if>
<c:if test="${fn:length(assertion.chainedAuthentications) > 1}">
<cas:proxies>
<c:forEach var="proxy" items="${assertion.chainedAuthentications}"
varStatus="loopStatus" begin="0"
end="${fn:length(assertion.chainedAuthentications)-2}" step="1">
<cas:proxy>${fn:escapeXml(proxy.principal.id)}</cas:proxy>
</c:forEach>
</cas:proxies>
</c:if>
<c:if
test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes)
>
0}">
<cas:attributes>
<c:forEach
var="attr"
items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}"
varStatus="loopStatus"
begin="0"
end="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes)-1}"
step="1">
<cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}>
</c:forEach>
</cas:attributes>
</c:if>
</cas:authenticationSuccess>
</cas:serviceResponse>
客戶端配置:
1.過濾器CAS Validation Filter:
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class> org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://domainserver:8081/cas</param-value>
</init-param>
</filter>
在客戶端獲取信息
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
String loginName = principal.getName();//獲取用戶名
Map<String, Object> attributes = principal.getAttributes();
if(attributes != null) {
System.out.println(attributes.get("userId"));
System.out.println(attributes.get("passwordHint"));
}
posted @
2011-01-21 10:06 雪地孤鴻 閱讀(15883) |
評論 (9) |
編輯 收藏
最近在使用G2G做項目,開發(fā)環(huán)境的數(shù)據(jù)庫為Mysql,在使用grails的分頁組件時沒有任何問題,但是將數(shù)據(jù)庫切換到ORACLE上就出現(xiàn)了問題,在分頁的時候,記錄總數(shù)是對了的,但在進行翻頁的時候,總會有前一頁的數(shù)據(jù)存在,而當(dāng)前的數(shù)據(jù)總是顯示不對,經(jīng)過將近一天的仔細(xì)排查才找到問題的關(guān)鍵,主要是由于數(shù)據(jù)庫的差異引起的,由于的我的查詢不需要進行排序,所以在原來的查詢結(jié)果中沒有就排序語句,這就導(dǎo)致在mysql中完全正常的功能,到了oralce中每次查詢的排序不一致,結(jié)果就導(dǎo)致在翻頁的時候總有前一頁的數(shù)據(jù)存在,可能是由于數(shù)據(jù)庫的引擎規(guī)則的不一致導(dǎo)致的。
再次記下!
posted @
2010-12-13 11:15 雪地孤鴻 閱讀(714) |
評論 (0) |
編輯 收藏
今天早上出來給老婆大人買早點,騎著老婆大人的小車,在路上奔馳,突然一種思緒飛入腦中,想想自己也是三十多歲的人了,卻是一事無成。我本IT出生,參加工作以來,卻一直徘徊在IT技術(shù)的和行業(yè)解決方案之間搖擺,最后終于下定決心朝著行業(yè)解決方案的方向發(fā)展,卻選擇了一個旅游行業(yè),雖說春秋在國內(nèi)也算的上不錯的旅游公司,但這個行業(yè)確實亂象叢生。該公司在信息化方面更是不知所謂,早三暮四。雖然我不應(yīng)該對公司說三道四,但還是忍不住要說兩句。算了,這個都是我個人的抉擇,我現(xiàn)在是IT技術(shù)方面沒有什么看家的本事,行業(yè)知識也沒有什么,長此以往,很是危險,隨著年齡的增長,抗風(fēng)險能力會越來月差,我必須要重新的思考和抉擇,不然真的要落的老婆大人預(yù)見的場景了,我自己不甘心這樣,也 不能讓老婆看扁啊。行業(yè)的解決方案肯定是我的房展方向,是繼續(xù)在這個行業(yè)發(fā)展,還是重新挑選行業(yè),這是個比較重要的決定,但是不管怎么樣,我的老本行--IT技術(shù)也支撐不了幾年了,我必須要反省,深思我過去的規(guī)劃和執(zhí)行,重新規(guī)劃和執(zhí)行,努力的保障家庭幸福的經(jīng)濟基礎(chǔ),開拓新的事業(yè)。
今天在這里寫下如此的只言片語,就是為了鞭策自己,不能讓自己在被短期的利益而動搖長期的規(guī)劃和執(zhí)行,年紀(jì)也不小了,還沒有一個像樣的事業(yè),以后的風(fēng)險會越來越大。
最近在試用Grails進行開發(fā)一個小項目,需要使用oracle數(shù)據(jù)庫,我使用的是Oracle 11g,簡單的配置如下:
1.添加jdbc lib到Grails項目的lib中,我使用的是ojdcb6_g.jar
2.修改grails生成項目的DataSource.groovy文件中關(guān)于DataSource的相關(guān)配置:關(guān)鍵點是關(guān)于hibernate方言的配置,由于grails默認(rèn)使用的是HSQL內(nèi)存數(shù)據(jù)庫,推薦使用的是mysql數(shù)據(jù)庫;但是在使用oracle數(shù)據(jù)庫時,需要配置hiernate的方言;其他的如URL,drive,username,password等配置和一般的配置沒有什么區(qū)別,詳細(xì)配置如下:
dataSource {
pooled = true
driverClassName = "oracle.jdbc.OracleDriver"
username = "paygateway"
password = "paygateway"
dialect = "org.hibernate.dialect.OracleDialect"
logSql = true
}
posted @
2010-03-19 13:38 雪地孤鴻 閱讀(2001) |
評論 (1) |
編輯 收藏
公司剛剛買了一臺Thinkpad R400(7445-A63),預(yù)裝的vista home basic版本,由于第一次使用thinkpad系列,只是制作了一個start Recovery Disk盤,忘了制作系統(tǒng)恢復(fù)光盤,暈倒,不知道聯(lián)想能否免費提供哦,那可是俺花銀子買的阿。當(dāng)時急著想試用一下win7(當(dāng)然是盜版的),所以就把硬盤格掉了,后來想恢復(fù)的時候已經(jīng)晚了,因為我沒有win7的序列號,沒有辦法,只能重回xp時代了。
由于硬盤是sata的,安裝過程很是郁悶,開始都引導(dǎo)不了,后來狠狠的google一把,終于搞定了:
1.進入BIOS-》CONIF,將硬盤的模式修改為compatibility,原來為ACHI
2.到聯(lián)想的官方網(wǎng)站,現(xiàn)在相關(guān)xp的驅(qū)動(http://think.lenovo.com.cn),網(wǎng)友提供列表如下;我是全部打包下載了:)
安裝主板芯片組驅(qū)動(Intel Chipset Drivers)
安裝硬盤SATA驅(qū)動(Intel Matrix Storage Manager)
安裝ACPI電源驅(qū)動,即Power Manager Driver
安裝Lenovo System Interface Driver
啟動系統(tǒng),系統(tǒng)安裝顯卡驅(qū)動
安裝網(wǎng)卡驅(qū)動
安裝無線驅(qū)動
如果此系統(tǒng)安裝為XP2的系統(tǒng),那么要安裝MODOM和聲卡的前提是安裝讀卡器(也有人叫HD總線)補丁: KB888111XPSP2.EXE;
安裝聲卡驅(qū)動和補丁
安裝貓驅(qū)動
安裝藍(lán)牙驅(qū)動
安裝讀卡器驅(qū)動
安裝智能讀卡器驅(qū)動
安裝指紋驅(qū)動
安裝PCI簡易通訊控制器,也就是AMT(INTEL的主動管理技術(shù)
安裝TPM安全芯片的驅(qū)動程序
安裝攝像頭驅(qū)動和補丁:7yca02ww.exe,Q909667.rar。
安裝微軟雙核補丁和其他補丁:KB896256.exe, KB936357.exe, schedulerupdater.exe。
安裝UltraNav driver
安裝UltraNav Utility
3.驅(qū)動安裝完成后,重啟機器,進入BIOS,將硬盤模式修改回原來的ACHI模式
4.不知到何時能用上正中的win7盜版,感覺還是不錯,雖然我平時已經(jīng)不太用win系統(tǒng)了。:)
posted @
2009-12-20 11:25 雪地孤鴻 閱讀(1561) |
評論 (2) |
編輯 收藏
ofbiz默認(rèn)的數(shù)據(jù)庫為derby,這個當(dāng)然不能在生產(chǎn)環(huán)境中使用,而且也不方便調(diào)試和管理。雖然ofbiz也支持很多的開源數(shù)據(jù)庫,例如mysql等,但是我們這里還是使用主流的數(shù)據(jù)庫系統(tǒng)oracle 11g.詳細(xì)的操作如下
1.更新JDBC驅(qū)動,將oracle最新的jdbc驅(qū)動copy到${ofbiz install dir}/framework/entity/lib/jdbc 目錄下。
2.設(shè)置實體引擎( Entity Engine)的缺省數(shù)據(jù)庫為oracle.在修改 ${ofbiz install dir}/framework/entity/config/entityengine.xml文件中修改配置:
a.修改數(shù)據(jù)庫連接參數(shù):
<datasource name="localoracle"
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
schema-name="ofbiz" 你的數(shù)據(jù)庫schema名稱
field-type-name="oracle"
check-on-start="true"
add-missing-on-start="true"
alias-view-columns="false"
join-style="ansi">
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial"/>
<read-data reader-name="demo"/>
<read-data reader-name="ext"/>
<inline-jdbc
jdbc-driver="oracle.jdbc.driver.OracleDriver"
jdbc-uri="jdbc:oracle:thin:@192.168.1.154:1521:ofbiz" ofbiz為你的數(shù)據(jù)庫SID
jdbc-username="ofbiz" 用戶名
jdbc-password="ofbiz" 密碼
pool-minsize="2"
pool-maxsize="250"/>
</datasource>
b. 修改實體引擎的數(shù)據(jù)庫缺省配置如下:(將datasource-name的值設(shè)置為“localoracle”)
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clear-enabled="false">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
<group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
</delegator>
<delegator name="default-no-eca" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" entity-eca-enabled="false" distributed-cache-clear-enabled="false">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
<group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
</delegator>
<!-- be sure that your default delegator (or the one you use) uses the same datasource for test. You must run "ant run-install" before running "ant run-tests" -->
<delegator name="test" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
<group-map group-name="org.ofbiz.olap" datasource-name="localoracle"/>
</delegator>
<delegator name="other" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main">
<group-map group-name="org.ofbiz" datasource-name="localoracle"/>
</delegator>
3.補充:在進行以上配置時,請確保你已經(jīng)存在ofbiz的數(shù)據(jù)庫,實例,用戶等都已創(chuàng)建好。
4. 初始化數(shù)據(jù)和導(dǎo)入:
ofbiz$ java -jar ofbiz.jar -install
通過以上命令即可進行數(shù)據(jù)庫的初始化和初始數(shù)據(jù)的導(dǎo)入,這里包括了ofbiz自帶的例子,應(yīng)用的所有的數(shù)據(jù)表和初始化數(shù)據(jù)
5.問題:
在使用oracle數(shù)據(jù)庫時,當(dāng)前的版本可能會碰到ORA-01843:無效的月份的問題
以sys用戶登陸并創(chuàng)建Trigger:
create or replace TRIGGER ON_CONNECT AFTER LOGON ON DATABASE
DECLARE
guser varchar2(30);
begin
SELECT sys_context('USERENV','SESSION_USER') into guser FROM dual;
if (guser='ofbiz' or guser='OFBIZ') THEN
EXECUTE IMMEDIATE 'alter session set nls_timestamp_format = ''YYYY-MM-DD HH24:MI:SS.FF''';
end if;
end;
注意對登陸用戶名的判斷必須大小寫都要考慮.
另:ofbiz用戶不能擁有dba的權(quán)限,同時ofbiz用戶比需要有UNLIMITED TABLESPACE的權(quán)限,否則在創(chuàng)建數(shù)據(jù)表的時候會報“數(shù)據(jù)庫空間不足”的錯誤,導(dǎo)致無法創(chuàng)建表。
6.參考:
http://blog.csdn.net/blieveme/archive/2007/10/16/1826604.aspx
http://docs.ofbiz.org/display/~jacopoc/OFBiz+and+Oracle
今天就到這里吧,明天繼續(xù):)
posted @
2009-09-03 20:27 雪地孤鴻 閱讀(2613) |
評論 (3) |
編輯 收藏