JBoss/JBoss Portalを使う
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
[[JavaWorld2006/03号:http://www.amazon.co.jp/exec/obidos/...
#contents
**インストール [#tc92c8f7]
***ダウンロード [#q8d71adb]
http://www.jboss.org/products/jbossportal/downloads より...
JBoss Portal Binary 2.2
をダウンロードしてインストールします。
***インストール [#ce0c33f6]
インストールは簡単で、ファイルを解凍してJBossのDeployディ...
-jboss-portal.sar
-データベース設定ファイル
を置くだけです。これでJBoss起動時にPortal Serverが起動さ...
**使ってみる [#ee14053e]
***まずはアクセス [#m82d5c42]
http://localhost:8080/portal/ にアクセスするとトップペー...
#ref(top.png)
このトップページから管理画面などへ入ることができます。左...
-Portalを管理する画面
-Instancesを管理する画面
-Portletを管理する画面
などが用意されています。
#ref(manager.png)
*** Portletなどを組み込む [#ye199684]
さて、自作のPortletをポータルコンテナに組み込んでいきます...
WEB-INF配下に以下のファイル群を置いていきます。
-portlet.xml
-jboss-app.xml
-*-object.xml
portlet.xmlはJSR168の仕様内のファイルみたいです。
<portlet-name>HelloPortlet</portlet-name>
<portlet-class>nu.mine.kino.portlets.HelloPortlet</portl...
などのようにして、ポートレット名と実際のクラス名を関連づ...
jboss-app.xmlは
<jboss-app>
<app-name>helloworld</app-name>
</jboss-app>
のようにして、このwar内のポートレットのアプリ名を記述しま...
*-object.xmlは実際のポートレットの配置などを定義するファ...
<?xml version="1.0" encoding="UTF-8"?>
<deployments>
<deployment>
<if-exists>overwrite</if-exists>
<parent-ref>default</parent-ref>
<properties/>
<page>
<!-- tabにあらわれる -->
<page-name>Hello World MyPage</page-name>
<properties/>
<window>
<window-name>HelloWorldPortletWindow</window-name>
<instance-ref>HelloWorldPortletInstance</instance-...
<region>center</region>
<height>0</height>
</window>
</page>
</deployment>
<deployment>
<if-exists>overwrite</if-exists>
<instance>
<instance-name>HelloWorldPortletInstance</instance...
<component-ref>helloworld.HelloPortlet</component-...
</instance>
</deployment>
</deployments>
などのようにします。
<component-ref>helloworld.HelloPortlet</component-ref>
は[アプリ名].[ポートレット名]ってなってるみたいです。
この辺はそのうち、後述します((ていうかいろいろやってる最...
また、実装クラスはこんな感じ:
package nu.mine.kino.portlets;
import java.io.IOException;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletSecurityException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
/**
* @author Masatomi KINO
* @version $Revision$
*/
public class HelloPortlet extends GenericPortlet {
protected String getTitle(RenderRequest request) {
System.out.println(super.getTitle(request));
return "Hello Portlet Example!";
}
protected void doView(RenderRequest request, RenderR...
throws PortletException, PortletSecurityExce...
response.setContentType("text/html");
response.getWriter().println("Hello Portlet!!");
}
}
**データベースをMySQLにする [#oc549576]
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.15-...
Type 'help;' or '\h' for help. Type '\c' to clear the bu...
mysql> create database jbossportal;
Query OK, 1 row affected (0.03 sec)
mysql> grant all privileges on jbossportal.* to portal i...
Query OK, 0 rows affected (0.04 sec)
mysql>
としてjbossportalというデータベースとそのデータベースにア...
次にJBossを起動したときに、自動的にテーブルが作成されるみ...
mysql> show tables;
+-------------------------+
| Tables_in_jbossportal |
+-------------------------+
| JBP_CONTEXT |
| JBP_INSTANCE |
| JBP_INSTANCE_PREF |
| JBP_INSTANCE_PREF_VALUE |
| JBP_OBJECT_NODE |
| JBP_PAGE |
| JBP_PORTAL |
| JBP_PORTAL_MODE |
| JBP_PORTAL_OBJECT |
| JBP_PORTAL_OBJECT_PROPS |
| JBP_PORTAL_WINDOW_STATE |
| JBP_SECURITY_CONSTRAINT |
| JBP_SECURITY_POLICY |
| JBP_WINDOW |
| jbp_role_membership |
| jbp_roles |
| jbp_user_pref |
| jbp_user_pref_set |
| jbp_user_pref_value |
| jbp_user_prefs_group |
| jbp_user_prop |
| jbp_users |
+-------------------------+
22 rows in set (0.01 sec)
なんかエラーが一杯コンソールにでてたので、うまくいってな...
*** Portletの各メソッドのよばれるタイミング [#sf972113]
:init()| ポートレットコンテナがポートレットをインスタンス...
:destroy()| ポートレットコンテナがポートレットを破棄する...
:processAction()| ユーザーがポートレットに変更内容を送出...
:render()| デスクトップでポートレットが再描画されるたびに...
これらのコンテナから直接呼び出されるメソッドに加えて、ren...
:doView()| ポートレットが表示モードの場合に render() から...
:doEdit()| ポートレットが編集モードの場合に render() から...
:doHelp()| ポートレットがヘルプモードの場合に render() か...
はまったのが、processActionで引数のオブジェクトActionRequ...
<portlet:defineObjects/>
<%
Object hoge = renderRequest.getAttribute("hoge");
%>
とするみたいです。はまったー。。。。
***描画をJSPにやらせる。 [#s3729f0a]
protected void doView(RenderRequest request, RenderRespo...
throws PortletException, PortletSecurityExceptio...
// ココでは、ViewをJSPに任せている。
response.setContentType("text/html");
getPortletContext().getRequestDispatcher("/WEB-INF/j...
.include(request, response);
}
**関連リンク [#c2168e9b]
-[[JBoss Portal Documentation Library:http://www.jboss.or...
-[[JSR 168 − Java ポートレット仕様 − 入門:http://sdc.sun....
-[[「eXo Platform」で体験するポータル・サイト開発:http://...
----
この記事は
#vote(おもしろかった[9],そうでもない[0])
-MySQLはLinuxだとOKみたいだけど、何故かlocalhostのWindows...
-MySQLだと、Managerタブが出てこない。。。adminにRoleたし...
-renderRequest と通常のrequestどっちから取ればよいか、よ...
-たまにDeployするとエラーに。プロジェクトのキャッシュを削...
-JBoss Portalに限らずJBossの話。文字化けが発生したので対...
- Windows環境でやっております。う、うまくいきません、、、...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
[[JavaWorld2006/03号:http://www.amazon.co.jp/exec/obidos/...
#contents
**インストール [#tc92c8f7]
***ダウンロード [#q8d71adb]
http://www.jboss.org/products/jbossportal/downloads より...
JBoss Portal Binary 2.2
をダウンロードしてインストールします。
***インストール [#ce0c33f6]
インストールは簡単で、ファイルを解凍してJBossのDeployディ...
-jboss-portal.sar
-データベース設定ファイル
を置くだけです。これでJBoss起動時にPortal Serverが起動さ...
**使ってみる [#ee14053e]
***まずはアクセス [#m82d5c42]
http://localhost:8080/portal/ にアクセスするとトップペー...
#ref(top.png)
このトップページから管理画面などへ入ることができます。左...
-Portalを管理する画面
-Instancesを管理する画面
-Portletを管理する画面
などが用意されています。
#ref(manager.png)
*** Portletなどを組み込む [#ye199684]
さて、自作のPortletをポータルコンテナに組み込んでいきます...
WEB-INF配下に以下のファイル群を置いていきます。
-portlet.xml
-jboss-app.xml
-*-object.xml
portlet.xmlはJSR168の仕様内のファイルみたいです。
<portlet-name>HelloPortlet</portlet-name>
<portlet-class>nu.mine.kino.portlets.HelloPortlet</portl...
などのようにして、ポートレット名と実際のクラス名を関連づ...
jboss-app.xmlは
<jboss-app>
<app-name>helloworld</app-name>
</jboss-app>
のようにして、このwar内のポートレットのアプリ名を記述しま...
*-object.xmlは実際のポートレットの配置などを定義するファ...
<?xml version="1.0" encoding="UTF-8"?>
<deployments>
<deployment>
<if-exists>overwrite</if-exists>
<parent-ref>default</parent-ref>
<properties/>
<page>
<!-- tabにあらわれる -->
<page-name>Hello World MyPage</page-name>
<properties/>
<window>
<window-name>HelloWorldPortletWindow</window-name>
<instance-ref>HelloWorldPortletInstance</instance-...
<region>center</region>
<height>0</height>
</window>
</page>
</deployment>
<deployment>
<if-exists>overwrite</if-exists>
<instance>
<instance-name>HelloWorldPortletInstance</instance...
<component-ref>helloworld.HelloPortlet</component-...
</instance>
</deployment>
</deployments>
などのようにします。
<component-ref>helloworld.HelloPortlet</component-ref>
は[アプリ名].[ポートレット名]ってなってるみたいです。
この辺はそのうち、後述します((ていうかいろいろやってる最...
また、実装クラスはこんな感じ:
package nu.mine.kino.portlets;
import java.io.IOException;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletSecurityException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
/**
* @author Masatomi KINO
* @version $Revision$
*/
public class HelloPortlet extends GenericPortlet {
protected String getTitle(RenderRequest request) {
System.out.println(super.getTitle(request));
return "Hello Portlet Example!";
}
protected void doView(RenderRequest request, RenderR...
throws PortletException, PortletSecurityExce...
response.setContentType("text/html");
response.getWriter().println("Hello Portlet!!");
}
}
**データベースをMySQLにする [#oc549576]
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.15-...
Type 'help;' or '\h' for help. Type '\c' to clear the bu...
mysql> create database jbossportal;
Query OK, 1 row affected (0.03 sec)
mysql> grant all privileges on jbossportal.* to portal i...
Query OK, 0 rows affected (0.04 sec)
mysql>
としてjbossportalというデータベースとそのデータベースにア...
次にJBossを起動したときに、自動的にテーブルが作成されるみ...
mysql> show tables;
+-------------------------+
| Tables_in_jbossportal |
+-------------------------+
| JBP_CONTEXT |
| JBP_INSTANCE |
| JBP_INSTANCE_PREF |
| JBP_INSTANCE_PREF_VALUE |
| JBP_OBJECT_NODE |
| JBP_PAGE |
| JBP_PORTAL |
| JBP_PORTAL_MODE |
| JBP_PORTAL_OBJECT |
| JBP_PORTAL_OBJECT_PROPS |
| JBP_PORTAL_WINDOW_STATE |
| JBP_SECURITY_CONSTRAINT |
| JBP_SECURITY_POLICY |
| JBP_WINDOW |
| jbp_role_membership |
| jbp_roles |
| jbp_user_pref |
| jbp_user_pref_set |
| jbp_user_pref_value |
| jbp_user_prefs_group |
| jbp_user_prop |
| jbp_users |
+-------------------------+
22 rows in set (0.01 sec)
なんかエラーが一杯コンソールにでてたので、うまくいってな...
*** Portletの各メソッドのよばれるタイミング [#sf972113]
:init()| ポートレットコンテナがポートレットをインスタンス...
:destroy()| ポートレットコンテナがポートレットを破棄する...
:processAction()| ユーザーがポートレットに変更内容を送出...
:render()| デスクトップでポートレットが再描画されるたびに...
これらのコンテナから直接呼び出されるメソッドに加えて、ren...
:doView()| ポートレットが表示モードの場合に render() から...
:doEdit()| ポートレットが編集モードの場合に render() から...
:doHelp()| ポートレットがヘルプモードの場合に render() か...
はまったのが、processActionで引数のオブジェクトActionRequ...
<portlet:defineObjects/>
<%
Object hoge = renderRequest.getAttribute("hoge");
%>
とするみたいです。はまったー。。。。
***描画をJSPにやらせる。 [#s3729f0a]
protected void doView(RenderRequest request, RenderRespo...
throws PortletException, PortletSecurityExceptio...
// ココでは、ViewをJSPに任せている。
response.setContentType("text/html");
getPortletContext().getRequestDispatcher("/WEB-INF/j...
.include(request, response);
}
**関連リンク [#c2168e9b]
-[[JBoss Portal Documentation Library:http://www.jboss.or...
-[[JSR 168 − Java ポートレット仕様 − 入門:http://sdc.sun....
-[[「eXo Platform」で体験するポータル・サイト開発:http://...
----
この記事は
#vote(おもしろかった[9],そうでもない[0])
-MySQLはLinuxだとOKみたいだけど、何故かlocalhostのWindows...
-MySQLだと、Managerタブが出てこない。。。adminにRoleたし...
-renderRequest と通常のrequestどっちから取ればよいか、よ...
-たまにDeployするとエラーに。プロジェクトのキャッシュを削...
-JBoss Portalに限らずJBossの話。文字化けが発生したので対...
- Windows環境でやっております。う、うまくいきません、、、...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: