欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Jetspeed2學(xué)習筆記(五)
19、Jetspeed應用框架詳解:
jetspeed使用spring來(lái)作為它的缺省組件框架,但是,jetspeed的體系架構使得它可以很容易替換其組件管理框架,其控制是在JetspeedServlet中,其類(lèi)圖如下:
在JetspeedServlet初始化啟動(dòng)時(shí),在其init()方法中,有如下調用引擎的代碼:
engine = new JetspeedEngine(properties, applicationRoot, config, initializeComponentManager(config, applicationRoot, properties)); Jetspeed.setEngine(engine); engine.start();
其中的initializeComponentManager方法加載組件管理(assembly)框架,要改用其他額IoC框架的話(huà),需要修改此函數。
以下就是initializeComponentManager方法的代碼:
ServletConfigFactoryBean.setServletConfig(servletConfig);        // String relativeApplicationRoot = getRealPath("/");         String relativeApplicationRoot = appRoot;        String absApplicationRoot = new File(relativeApplicationRoot).getCanonicalPath();                                final String assemblyDir = configuration.getString("assembly.dir","/WEB-INF/assembly");         final String assemblyFileExtension = configuration.getString("assembly.extension",".xml");                              String[] bootConfigs = new String[] {"/WEB-INF/assembly/boot/*.xml"};         String[] appConfigs = new String[] {assemblyDir+"/*"+assemblyFileExtension};         ServletContext servletContext = servletConfig.getServletContext();         SpringComponentManager cm = new SpringComponentManager(bootConfigs, appConfigs, servletContext, appRoot);                       return cm;
從以上代碼可以看出:
1、 Spring框架的所有應用配置文件都放在了/WEB-INF/assembly目錄下。
2、 初始配置文件放在了/WEB-INF/assembly/boot/目錄下,這個(gè)目錄下目前只有一個(gè)文件 ――datasource.xml,記錄了ojb數據庫的連接基本配置,如果要修改數據庫的連接配置,可以修改它,這種情況一般發(fā)生在應用服務(wù)器要從Tomcat遷移到別的J2EE服務(wù)器時(shí)。
3、 在JetspeedServlet啟動(dòng)的時(shí)候,收集assembly目錄下的所有Spring配置文件,傳遞給Spring作初始加載。
20、數據庫連接模式修改:
Jetspeed目前數據庫的連接配置信息寫(xiě)在了catalina/jetspeed.xml配置文件中了,以Resource標簽的模式來(lái)作為一個(gè)資源而定義。這中模式不是很通用,在weblogic中我就不知道改如何修改了。但是,可以通過(guò)另外一種方法來(lái)修改數據庫的配置模式:
在/WEB-INF/assembly/boot/目錄下的datasource.xml文件中,我們將前面居于Context上下文的加載模式注釋掉,如下 所示:
<bean id="JetspeedDS" class="org.apache.jetspeed.components.rdbms.ojb.ConnectionRepositoryEntry">
<property name="jndiName">
<value>java:comp/env/jdbc/jetspeed</value>
</property>
</bean>
將其下面的居于“common DBCP Pooled datasource”模式的連接模式放開(kāi),如下所示:
<bean id="JetspeedDS" class="org.apache.jetspeed.components.rdbms.ojb.ConnectionRepositoryEntry">
<property name="driverClassName">
<value>{my.drivers.class.name}</value>
</property>
<property name="url">
<value>{URL to my DB}</value>
</property>
<property name="username">
<value>{username}</value>
</property>
<property name="password">
<value>{password}</value>
</property>
</bean>
同時(shí)修改classes目錄下的OJB.properties文件(編譯前在/etc/db-ojb/OJB.properties),修改里面的ConnectionFactoryClass或ConnectionManagerClass屬性如下:
ConnectionFactoryClass=org.apache.ojb.broker.accesslayer.ConnectionFactoryDBCPImpl
或:
ConnectionManagerClass=org.apache.jetspeed.components.rdbms.ojb.ConnectionManagerImpl
|--------------------------à推薦這個(gè)
兩個(gè)只要修改一個(gè)就可以了。
修改后,連接池不再用J2EE應用服務(wù)器提供了,而是由DBCP來(lái)負責提供。
21、用戶(hù)登陸驗證:
1、 form指向“/jetspeed/login/proxy”,在web.xml定義中,其被定向到“jetspeed-portal-version.jar”中的org.apache.jetspeed.login. LoginProxyServlet.java中2、 LoginProxyServlet.java中,用戶(hù)名和密碼被封裝在session中后,重定向到“/login/redirector”,指向“org.apache.jetspeed.login.LoginRedirectorServlet.java”中。3、 在導向(觸發(fā))到/login/redirector時(shí),由于在/conf/Catalina/jetspeed.xml中配置了居于JAASRealm的驗證,并且連接在web.xml中的《security-constraint》中配置了對資源“/login/redirector”需要訪(fǎng)問(wèn)驗證,所以JAAS驗證被觸發(fā)。
22、規范摘錄:
Portlet API定義了一個(gè) PortletURL 的接口。Portlets 必須用這個(gè) PortletURL 物件來(lái)產(chǎn)生 portlet URLs。 在產(chǎn)生 PortletURL 的同時(shí), PortletURL 也會(huì )呼叫 RenderResponse 接口定義的兩個(gè)方法:
createActionURL 和 createRenderURL。
createActionURL 用來(lái)生成 action URLs。
createRenderURL 用來(lái)生成 render URLs。
一個(gè)render URL 是對某些特殊類(lèi)型action URLS 的一種優(yōu)化。 在 render portlet URL 的過(guò)程中 Portal/portlet-container 不允許調用目標 portlet 的 processAction方法。 Portal/portlet-container必須確保當在建構 render URL 時(shí)所設定的參數, 也能變成是在請求這個(gè) portlet 時(shí)的參數。
Portlets可以通過(guò) PortletURL 所提供的 setParameter 和 setParameters 兩個(gè)方法, 對 PortletURL 物件設定一些應用程序的特殊參數。 setParameter 這個(gè)方法必須把以前所設定的同名參數給取代掉。所有 portlet 所加到 PortletURL 物件上的參數都必須為該 portlet 的可用請求參數。 Portlet 開(kāi)發(fā)者必須注意到 render request 的請求參數并非在產(chǎn)生 PortletURL 時(shí)就被使用到。
Portlet-container不能把在 action request 得到的參數傳遞到后續的 render request。 假如 portlet 要這樣做, 可以通過(guò) render URL 或是在 processAction 的時(shí)候,利用 ActionResponse 物件的 setRenderParameter or serRenderParameters 方法來(lái)做。
一個(gè) portlet 可以利用 PortletRequest 接口提供的 isWindowStateAllowed 方法來(lái)得知本身是否可以使用該 window state。
23、Jetspeed2 在WebLogic上的部署
假設BEA的根目錄是${BEA},自己的建的domain叫mydomain,并且,已經(jīng)把應用的端口由7001改為80了
1. 在${BEA}下新建shared/lib文件夾,把tomcat目錄下的shared/lib下的五個(gè)jar包拷到新建的文件夾中:
jetspeed-api-2.0-M1.jar
jetspeed-commons-2.0-M1.jar
pluto-1.0.1-rc1.jar
portals-bridges-common-0.1.jar
portlet-api-1.0.jar
2. 把jetspeed文件夾拷到${BEA}/user_projects/domains/mydomain/applications下面。
3. 修改${BEA}/user_projects/domains/mydomain/目錄下的startWeblogic.cmd 文件,添加如下的一些設置(紅色的為添加的):
set SHLIB=C:\bea\shared\lib
set SHARED_PATH=%SHLIB%\jetspeed-api-2.0.jar;%SHLIB%\jetspeed-commons-2.0.jar;%SHLIB%\pluto-1.0.1.jar;%SHLIB%\portals-bridges-common-1.0.jar;%SHLIB%\portlet-api-1.0.jar;
set CLASSPATH=%SHARED_PATH%;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%
并確保有如下紅色這句話(huà):(很重要哦?。。?div style="height:15px;">
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Djava.naming.provider.url=t3://localhost:80 -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server
4. 修改jetspeed/WEB-INF/assembly/目錄下的deployment.xml(或jetspeed-spring.xml)文件,找到 <bean id="org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager"
class="org.apache.jetspeed.tools.pamanager.servletcontainer.TomcatManager"
init-method="start" destroy-method="stop"
> 這樣的設置,把TomcatManager改成WeblogicManager,并把下面的<constructor-arg></constructor-arg>設置刪掉。
5.Setup a JDBC Connection and Pool。
Startup weblogic running the startWeblogic.cmd
Goto: http://localhost:7001/console/ and login, goto Services->JDBC->Connection Pools. Create a new pool. Create a JDBC data source named JetspeedDB based on the Connection Pool.
6.修改weblogic.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<context-root>/jetspeed</context-root>
<reference-descriptor>
<resource-description>
<res-ref-name>jdbc/jetspeed</res-ref-name>
<jndi-name>JetspeedDB</jndi-name>
</resource-description>
</reference-descriptor>
<!--
<container-descriptor>
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
</container-descriptor>
-->
</weblogic-web-app>
24、Portlet中獲得portlet.xml中預先綁定的參數
在portlet.xml中預先定義了如下的參數值:
<portlet-preferences>
<preference>
<name>TopRange</name>
<value>100</value>
</preference>
</portlet-preferences>
在portlet-class中可以通過(guò)如下代碼來(lái)取得:
private long getHighRange(PortletRequest request) {
PortletPreferences prefs = request.getPreferences();
String highRangePref = prefs.getValue("TopRange", "102"); //如果找不到“TopRange”,返回默認值102
long range = Long.parseLong(highRangePref);
if (range < 2) {
range = 102;
}
return range;
}
25、設置本地語(yǔ)言的portlet標題
要修改portlet的decorator中的標題(主要用在本地化的過(guò)程中),必須在相應的resource資源文件中,定義如下兩個(gè)變量的值:
javax.portlet.title=\u89d2\u8272\u5b89\u5168\u6027\u6d4b\u8bd5
javax.portlet.short-title=\u89d2\u8272\u5b89\u5168\u6027\u6d4b\u8bd5
26、獲得用戶(hù)的Subject
private Subject getSubject()
{
AccessControlContext context = AccessController.getContext();
return Subject.getSubject(context);
}
27、SSO研究
其sso,感覺(jué)也是構建Form,提交相關(guān)證書(shū)到相應的異構系統的LogonForm中。
Jetspeed2中,專(zhuān)門(mén)寫(xiě)了一個(gè)SSOIFramePortlet的portlet來(lái)專(zhuān)門(mén)處理單點(diǎn)登陸,其是由“IFrameGenericPortlet”擴展而來(lái),里面多了一些根據SSO配置信息來(lái)構建提交username和password的form的代碼,其大概意思可以用如下代碼來(lái)表達:
String site = request.getPreferences().getValue("SRC", null);
context = getPortletContext();
sso = (SSOProvider)context.getAttribute("cps:SSO");
Subject subject = getSubject(); // getSubject()在26中有說(shuō)明。
SSOContext context = sso.getCredentials(subject, site);
request.setAttribute(SSO_REQUEST_ATTRIBUTE_USERNAME, context.getRemotePrincipalName());
request.setAttribute(SSO_REQUEST_ATTRIBUTE_PASSWORD, context.getRemoteCredential());
………
super.doView(request, response);
具體可以好好研究一下類(lèi):org.apache.jetspeed.portlet. SSOIFramePortlet.java這個(gè)類(lèi),其在jetspeed-web-content-version.jar包中定義。
SSO的具體應用,其實(shí)只要在系統管理中配置了相應的站點(diǎn)后,只要定義一個(gè)居于SSOIFramePortlet的portlet頁(yè)面就可以了。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Jetspeed2.0中單點(diǎn)登錄的實(shí)現
Portal實(shí)現原理
Welcome to Jetspeed-2
Liferay系列文章(四)Portal產(chǎn)品介紹--開(kāi)放源碼Portal產(chǎn)品
有話(huà)好好說(shuō): 幾種開(kāi)源Portal的簡(jiǎn)單介紹分析
Jetspeed JetExpress Tutorial Portal 筆記2 -- 定制...
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久