My favorites | Sign in
t-2
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
LegacyIntegration  

en , ja
Updated Aug 20, 2009 by c95...@gmail.com

既存環境への統合のTipsをまとめてみました.

既存環境との統合

既存環境にのせてT2を使うには

T2は既存環境とも共存できるように設定項目をT2のフィルタ設定の下にかなり限定しています. 通常フィルタのURLパターンや、ディスパッチャー設定を適切にしてあげることでほとんどのケースで対応できます. またT2自体にもある拡張子の場合にはT2で処理しないという設定が出来るので、これを使うことでより既存ServletやFilterなどと共存しやすくなっています.

既存との共存のサンプルということで、Struts2のmailreaderアプリケーションのweb.xmlに共存させてみると以下のようになります.

<?xml version="1.0"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<display-name>Struts 2 Mailreader</display-name>
	<context-param>
		<param-name>t2.encoding</param-name>
		<param-value>UTF-8</param-value>
	</context-param>
	
	<filter>
		<filter-name>t2</filter-name>
		<filter-class>org.t2framework.t2.filter.T2Filter</filter-class>
		<init-param>
			<param-name>t2.rootpackage</param-name>
			<param-value>mailreader2.page</param-value>
		</init-param>
		<init-param>
			<param-name>t2.exclude-resources</param-name>
			<param-value>css, js, png, gif, jsp, do</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>Struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>t2</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>

	<filter-mapping>
		<filter-name>Struts2</filter-name>
		<url-pattern>*.do</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>
	
	<!-- Application Listener for Mailreader database -->
	<listener>
		<listener-class>mailreader2.ApplicationListener</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>

</web-app>
まとめると、既存環境の中にT2を統合して使うには、以下の点を注意して設定する必要があります.
  1. T2はFilterをエントリポイントとしているので、これと既存のServletやFilterなどの動くべき順序が適切か
  2. T2のエントリポイントとなるT2Filterが動くべきURLパターンを既存のURLと明示的にわけるべきか否か
  3. T2が動くべき拡張子をinit-paramのt2.exclude-resourcesで指定できるので既存と明示的に分離するかどうか
  4. T2Filterおよび既存のフィルタのfilter-mappingのdispatcherタグでREQUEST/FORWARD/INCLUDE/ERRORを設定しているか

TOPに戻る

Powered by Google Project Hosting