PALポータル(Jetspeed2) on GlassFish 2ur1

ふ~、ようやくたどり着いた。大変だったよ。LiferayがGlassFishで動くと、いい顔をさせておくわけにはいかんし。WebLogic では作るのが面倒でやめたけど、GlassFishの方ではがんばって、GlassFish用のログインモジュールを作った(これで結構、クラスローダーにはまったけど)。あとは、GlassFishが:をURLに使わせてくれないので、これまた、GlassFish用のPortalURLを用意した。ポートレットの配備方法については、まだ、改善の余地がある気がするけど、それはまた今度。PALポータルで動くので Jetspeed2でも動くと思うのだけど、いくつか追加したものをPALポータルから持っていく必要があります(たぶん、Jetspeed 2.2 にはそれらを入れると思います)。そんな感じで、手順は以下のような感じで、PALポータル 1.0.3 で動くと思います(今月中に1.0.3をリリースするつもり)。

$ java -Xmx256m -jar /tmp/glassfish-installer-v2ur1-b09d-linux.jar
$ mv glassfish/ glassfish-v2ur1
$ cd glassfish-v2ur1/
$ chmod -R +x lib/ant/bin
$ lib/ant/bin/ant -f setup.xml
$ cp /tmp/Portal/shared/lib/jetspeed-* domains/domain1/lib/
$ cp /tmp/Portal/shared/lib/p* domains/domain1/lib/
$ cp -r /tmp/Portal/webapps/palportal webapps/
$ vi webapps/palportal/WEB-INF/assembly/security-providers.xml
<!--constructor-arg index="2"><value>login.conf</value></constructor-arg-->
<constructor-arg index="2"><ref bean="org.apache.jetspeed.security.spi.CredentialHandler"/></constructor-arg>
<constructor-arg index="3"><ref bean="org.apache.jetspeed.security.spi.UserSecurityHandler"/></constructor-arg>
$ vi domains/domain1/config/login.conf
Jetspeed {
org.apache.jetspeed.security.impl.GlassFishLoginModule required;
};
$ vi webapps/palportal/WEB-INF/assembly/deployment.xml
<!--
<bean id="org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager"
class="org.apache.jetspeed.tools.pamanager.servletcontainer.TomcatManager"
init-method="start" destroy-method="stop"
>
<constructor-arg index="0"><value>${autodeployment.catalina.base}</value></constructor-arg>
<constructor-arg index="1"><value>${autodeployment.catalina.engine}</value></constructor-arg>
<constructor-arg index="2"><value>${autodeployment.server}</value></constructor-arg>
<constructor-arg index="3"><value>${autodeployment.port}</value></constructor-arg>
<constructor-arg index="4"><value>${autodeployment.user}</value></constructor-arg>
<constructor-arg index="5"><value>${autodeployment.password}</value></constructor-arg>
</bean>
-->
<bean id="org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager"
class="org.apache.jetspeed.tools.pamanager.servletcontainer.GlassFishManager"
init-method="start" />
$ vi webapps/palportal/WEB-INF/assembly/portal-url-generation.xml
<bean id="PortalURL"
class="org.apache.jetspeed.container.url.impl.GlassFishPathInfoEncodingPortalURL"
$ cp /tmp/jetspeed-security-glassfish-2.1.3.jar domains/domain1/lib/
$ pushd domains/domain1/lib/classes/
$ jar xvf ../jetspeed-security-glassfish-2.1.3.jar
$ rm -r META-INF/
$ mkdir -p ../../../../webapps/palportal/WEB-INF/classes/org/apache/jetspeed/security/impl/
$ mv ./org/apache/jetspeed/security/impl/GlassFishLoginModule.class ../../../../webapps/palportal/WEB-INF/classes/org/apache/jetspeed/security/impl/
$ rm ../jetspeed-security-glassfish-2.1.3.jar
$ popd
$ cp /tmp/mysql-connector-java-5.0.4.jar domains/domain1/lib/
$ vi domains/domain1/config/domain.xml
<java-config classpath-suffix="${com.sun.aas.instanceRoot}/lib/classes" ...
$ ./bin/asadmin start-domain domain1
$ echo adminadmin > passwordfile
$ ./bin/asadmin create-auth-realm --classname org.apache.jetspeed.security.impl.GlassFishRealm --user admin --passwordfile passwordfile --host localhost --port 4848 --property "jaas-context=Jetspeed:auth-type=jetspeed" Jetspeed
$ ./bin/asadmin stop-domain domain1
$ ./bin/asadmin start-domain domain1
-> Create Connection Pool(JetspeedDSPool) and JDBC Resource(jdbc/jetspeed)
$ ./bin/asadmin deploydir --user admin --passwordfile passwordfile webapps/palportal/
$ pushd webapps/
$ mkdir pal-admin
$ mkdir pal-wcm
$ cd pal-admin
$ jar xvf ../pal-admin.war
$ cd ../pal-wcm
$ jar xvf ../pal-wcm.war
$ popd
$ rm webapps/pal-admin/WEB-INF/lib/geronimo-ejb_2.1_spec-1.0.jar
$ ./bin/asadmin deploydir --user admin --passwordfile passwordfile webapps/pal-admin
$ ./bin/asadmin deploydir --user admin --passwordfile passwordfile webapps/pal-wcm

そうそう、Teeda なポートレットの pal-admin が動いているので、Teeda のアプリも GlassFish で動くと思う(たぶん)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です