[Seasar-user:9429] [Teeda+S2Axis2] Re:異なるWebアプリケーションとの協調
Applied_MATSUDA Masaaki
[E-MAIL ADDRESS DELETED]
2007年 7月 25日 (水) 16:02:27 JST
TigerCatです.
で,ようやく本題に戻ります.(ごめんなさい)
Dolteng 0.21.0 で生成した EasyEnterprise (Teeda + Kuina-Dao) な開発を
行っております.
WebアプリとWebアプリの間の裏方のデータ連携を,S2Axis2で実現することに
し,まったりと検証していたのですが,いまだうまくいっておりません.
S2Axis2のサンプル単体ではしっかり動いていることから,こりゃおそらく
TeedaとS2Axis2を併用するにはどうやるべきか?というFAQネタではないか
とは思いますが,Webでひとしきり検索してはみたものの,決定的な結論が
紹介されていなかったため,この場で確認させてください.
いちおう前提として,当方の事情によりどちらのWebアプリも相互に通信しま
す.なので,どちらもサーバでありクライアントである.よってS2Axis2のサ
ーバ側設定・クライアント側設定両方しています.
とりあえずS2Axis2のサンプルのEchoを動かそうと思い,
サーバ1で Echo1Service をディプロイ・公開.
サーバ2で Echo2Service をディプロイ・公開.
としたうえで,サーバ1からサーバ2のEcho2Serviceを呼ぶテストをやってい
ます.もちろん,ここでつまづいています.
※ このメールのいちばんさいごに,スタックトレース.
うまくいけば,サーバ2からサーバ1のEcho1Serviceを呼んだり,TeedaなWeb
アプリで結果を表示してみたりしてゆこうと思っています.
S2Axis2は現在ダウンロードできる0.3.0で,TeedaやS2ContainerやKuina-Dao
等は上記Doltengがお膳立てしてくれる現状最新版が入っています.
----- 以下,サーバ1 (http://localhost:8080/s2axis1/ ) の構成 -----
(Doltengの元々の設定を変更している部分や,追加したりしている部分は
<!-- @@@@ 理由 @@@@@ --> のコメントで囲っています.あと余分なコメント
類も割愛してます)
■ まず web.xml
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!--
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>
/WEB-INF/faces-config.xml
</param-value>
<description>
Comma separated list of URIs of (additional) faces config files.
(e.g. /WEB-INF/my-config.xml)
See JSF 1.0 PRD2, 10.3.2
</description>
</context-param>
-->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
<description>
State saving method: "client" or "server" (= default)
See JSF Specification 2.5.2
</description>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.html</param-value>
</context-param>
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>org.seasar.extension.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>s2filter</filter-name>
<filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class>
</filter>
<filter>
<filter-name>hotdeployfilter</filter-name>
<filter-class>org.seasar.framework.container.hotdeploy.HotdeployFilter</filter-class>
</filter>
<filter>
<filter-name>extensionfilter</filter-name>
<filter-class>org.seasar.teeda.extension.filter.ExtensionFilter</filter-class>
</filter>
<!--
<filter>
<filter-name>requestDumpFilter</filter-name>
<filter-class>org.seasar.teeda.core.filter.RequestDumpFilter</filter-class>
</filter>
-->
<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>s2filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>hotdeployfilter</filter-name>
<url-pattern>/*</url-pattern>
<!--
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
-->
</filter-mapping>
<!--
<filter-mapping>
<filter-name>requestDumpFilter</filter-name>
<url-pattern>/view/*</url-pattern>
</filter-mapping>
-->
<filter-mapping>
<filter-name>extensionfilter</filter-name>
<url-pattern>/teedaExtension/*</url-pattern>
</filter-mapping>
<!--
<listener>
<listener-class>org.seasar.teeda.core.webapp.TeedaConfigureListener</listener-class>
</listener>
-->
<!-- @@@@ S2Axis2
@@@@@ -->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<!--<init-param>-->
<!--<param-name>axis2.xml.path</param-name>-->
<!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
<!--<param-name>axis2.repository.path</param-name>-->
<!--<param-value>/WEB-INF</param-value>-->
<!--</init-param>-->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- @@@@ S2Axis2
@@@@@ -->
<!-- Teeda initialize servlet -->
<servlet>
<servlet-name>teedaServlet</servlet-name>
<servlet-class>org.seasar.teeda.core.webapp.TeedaServlet</servlet-class>
<init-param>
<param-name>configPath</param-name>
<param-value>app.dicon</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!-- @@@@ S2Axis2
<load-on-startup>1</load-on-startup>
@@@@@ -->
<load-on-startup>2</load-on-startup>
</servlet>
<!-- facesServlet -->
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<!-- @@@@ S2Axis2
<load-on-startup>2</load-on-startup>
@@@@@ -->
<load-on-startup>3</load-on-startup>
</servlet>
<servlet>
<servlet-name>ajaxServlet</servlet-name>
<servlet-class>org.seasar.teeda.ajax.AjaxServlet</servlet-class>
<!-- @@@@ S2Axis2
<load-on-startup>4</load-on-startup>
@@@@@ -->
<load-on-startup>5</load-on-startup>
</servlet>
<!-- @@@@@ S2Axis2
@@@@@ -->
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<!-- @@@@ S2Axis2
@@@@@ -->
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>teedaServlet</servlet-name>
<url-pattern>/teedaServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ajaxServlet</servlet-name>
<url-pattern>*.ajax</url-pattern>
</servlet-mapping>
<!--
<session-config>
<session-timeout>1</session-timeout>
</session-config>
-->
<!-- @@@@ S2Axis2
@@@@@ -->
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<!-- @@@@ S2Axis2
@@@@@ -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
■ app.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<include path="convention.dicon"/>
<include path="aop.dicon"/>
<include path="app_aop.dicon"/>
<include path="teedaExtension.dicon"/>
<include path="kuina-dao.dicon"/>
<include path="dxo.dicon"/>
<!-- @@@@ S2Axis2 Server
@@@@@ -->
<include path="s2axis2.dicon"/>
<include path="s2axis2Deploy.dicon"/>
<!-- @@@@ S2Axis2 Server
@@@@@ -->
<!-- @@@@ S2Axis2 Client
@@@@@ -->
<include path="s2axis2Client.dicon"/>
<!-- @@@@ S2Axis2 Client
@@@@@ -->
</components>
■ s2axis2Deploy.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<!-- @@@@ S2Axis2 Server
@@@@@ -->
<components>
<component name="Echo1Service"
class="s2axis.example.service.impl.Echo1ServiceImpl">
<meta name="axis-service"/>
</component>
</components>
<!-- @@@@ S2Axis2 Server
@@@@@ -->
■ s2axis2Client.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<!-- @@@@ S2Axis2 Client
@@@@@ -->
<components>
<!-- リモート呼び出しのインターセプタ 同期型要求応答形式 -->
<component name="ioRemoting"
class="org.seasar.remoting.common.interceptor.RemotingInterceptor">
<property name="connector">ioConnector</property>
</component>
<!-- Axisコネクタ 同期型要求応答形式 -->
<component name="ioConnector"
class="org.seasar.remoting.axis2.connector.AxisInOutConnector">
<property name="baseURL">baseURL</property>
</component>
<!-- Axisサービス -->
<component class="org.apache.axis2.description.AxisService" autoBinding="none"/>
<!-- 接続URL -->
<component name="baseURL" class="java.net.URL" autoBinding="none">
<arg>"http://localhost:8080/s2axis2/services/"</arg>
</component>
<!-- Webサービスのプロキシ -->
<component name="Echo2Service" class="s2axis.example.service.Echo2Service">
<aspect>ioRemoting</aspect>
</component>
</components>
<!-- @@@@ S2Axis2 Client
@@@@@ -->
■ Echo1Service インターフェイス
サーバとして公開用.
package s2axis.example.service;
public interface Echo1Service {
public String echo( int id, String message );
}
■ Echo1ServiceImpl クラス
サーバとして公開用.
package s2axis.example.service.impl;
import s2axis.example.service.Echo1Service;
public class Echo1ServiceImpl implements Echo1Service {
public String echo(int id, String message) {
return "[id = " + id + "] " + message;
}
}
■ Echo2Service インターフェイス
クライアントとして利用.
package s2axis.example.service;
public interface Echo2Service {
public String echo( int id, String message );
}
■ Echo2ServiceImpl クラス
なし!
■ ReceiveEcho2 クラス
サーバ2 からS2Axis2を介して Echo2ServiceImplのインスタンスをもらう
とりあえず,このmainを叩いて実験してる.
package s2axis.example.logic;
import org.seasar.framework.container.SingletonS2Container;
import org.seasar.framework.container.factory.SingletonS2ContainerFactory;
import s2axis.example.service.Echo2Service;
public class ReceiveEcho2 {
public static void main(String[] args) {
ReceiveEcho2 re = new ReceiveEcho2();
System.out.println( re.getEcho() );
}
public String getEcho(){
SingletonS2ContainerFactory.init();
Echo2Service service = SingletonS2Container.getComponent( Echo2Service.class );
return service.echo( 5, "This is a test from sv1 to sv2." );
}
}
----- 以下,サーバ2 (http://localhost:8080/s2axis2/ ) の構成 -----
■ web.xml
サーバ1と内容まったくいっしょ.
■ app.dicon
サーバ1と内容まったくいっしょ.
■ s2axis2Deploy.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<!-- @@@@ S2Axis2 Server
@@@@@ -->
<components>
<component name="Echo2Service"
class="s2axis.example.service.impl.Echo2ServiceImpl">
<meta name="axis-service"/>
</component>
</components>
<!-- @@@@ S2Axis2 Server
@@@@@ -->
■ s2axis2Client.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<!-- @@@@ S2Axis2 Client
@@@@@ -->
<components>
<!-- リモート呼び出しのインターセプタ 同期型要求応答形式 -->
<component name="ioRemoting"
class="org.seasar.remoting.common.interceptor.RemotingInterceptor">
<property name="connector">ioConnector</property>
</component>
<!-- Axisコネクタ 同期型要求応答形式 -->
<component name="ioConnector"
class="org.seasar.remoting.axis2.connector.AxisInOutConnector">
<property name="baseURL">baseURL</property>
</component>
<!-- Axisサービス -->
<component class="org.apache.axis2.description.AxisService" autoBinding="none"/>
<!-- 接続URL -->
<component name="baseURL" class="java.net.URL" autoBinding="none">
<arg>"http://localhost:8080/s2axis1/services/"</arg>
</component>
<!-- Webサービスのプロキシ -->
<component name="Echo1Service" class="s2axis.example.service.Echo1Service">
<aspect>ioRemoting</aspect>
</component>
</components>
<!-- @@@@ S2Axis2 Client
@@@@@ -->
■ Echo1Service インターフェイス
クライアントとして利用.サーバ1と内容まったくいっしょ.
■ Echo1ServiceImpl クラス
なし!
■ Echo2Service インターフェイス
サーバとして公開用.サーバ1と内容まったくいっしょ.
■ Echo2Service クラス
サーバとして公開用.
package s2axis.example.service.impl;
import s2axis.example.service.Echo2Service;
public class Echo2ServiceImpl implements Echo2Service {
public String echo(int id, String message) {
return "[id = " + id + "] " + message;
}
}
■ ReceiveEcho1 クラス
サーバ1 からS2Axis2を介して Echo1ServiceImplのインスタンスをもらう
とりあえず,片側の通信がうまくいくまでは,省略!!
----- 以下,ReceiveEcho2実行時のスタックトレース -----
DEBUG 2007-07-25 15:27:13,598 [main] 環境変数#Envにファイル(env.txt)から値(ct)が
設定されました
DEBUG 2007-07-25 15:27:14,098 [main] S2Containerを作成します。path=hotdeploy.dicon
DEBUG 2007-07-25 15:27:14,160 [main] S2Containerを作成します。path=convention.dicon
DEBUG 2007-07-25 15:27:15,223 [main] S2Containerを作成しました。path=
convention.dicon
DEBUG 2007-07-25 15:27:15,223 [main] S2Containerを作成します。path=customizer.dicon
DEBUG 2007-07-25 15:27:15,317 [main] S2Containerを作成します。path=default-
customizer.dicon
DEBUG 2007-07-25 15:27:15,364 [main] S2Containerを作成します。path=std-
customizer.dicon
DEBUG 2007-07-25 15:27:15,567 [main] S2Containerを作成しました。path=std-
customizer.dicon
DEBUG 2007-07-25 15:27:15,598 [main] S2Containerを作成しました。path=default-
customizer.dicon
DEBUG 2007-07-25 15:27:15,645 [main] S2Containerを作成しました。path=
customizer.dicon
DEBUG 2007-07-25 15:27:15,645 [main] S2Containerを作成します。path=creator.dicon
DEBUG 2007-07-25 15:27:16,051 [main] S2Containerを作成しました。path=creator.dicon
DEBUG 2007-07-25 15:27:16,082 [main] S2Containerを作成しました。path=hotdeploy.dicon
DEBUG 2007-07-25 15:27:16,442 [main] S2Containerを作成します。path=app.dicon
DEBUG 2007-07-25 15:27:16,536 [main] S2Containerを作成します。path=convention.dicon
DEBUG 2007-07-25 15:27:16,567 [main] S2Containerを作成しました。path=
convention.dicon
DEBUG 2007-07-25 15:27:16,567 [main] S2Containerを作成します。path=aop.dicon
DEBUG 2007-07-25 15:27:16,754 [main] S2Containerを作成しました。path=aop.dicon
DEBUG 2007-07-25 15:27:16,754 [main] S2Containerを作成します。path=app_aop.dicon
DEBUG 2007-07-25 15:27:16,911 [main] S2Containerを作成しました。path=app_aop.dicon
DEBUG 2007-07-25 15:27:16,911 [main] S2Containerを作成します。path=
teedaExtension.dicon
DEBUG 2007-07-25 15:27:16,989 [main] S2Containerを作成します。path=teeda.dicon
DEBUG 2007-07-25 15:27:17,036 [main] S2Containerを作成します。path=
teedaErrorPage.dicon
DEBUG 2007-07-25 15:27:17,192 [main] S2Containerを作成しました。path=
teedaErrorPage.dicon
DEBUG 2007-07-25 15:27:17,192 [main] S2Containerを作成します。path=
teedaCustomize.dicon
DEBUG 2007-07-25 15:27:17,286 [main] S2Containerを作成しました。path=
teedaCustomize.dicon
DEBUG 2007-07-25 15:27:18,270 [main] S2Containerを作成しました。path=teeda.dicon
DEBUG 2007-07-25 15:27:19,145 [main] S2Containerを作成しました。path=
teedaExtension.dicon
DEBUG 2007-07-25 15:27:19,145 [main] S2Containerを作成します。path=kuina-dao.dicon
DEBUG 2007-07-25 15:27:19,161 [main] S2Containerを作成します。path=jpa.dicon
DEBUG 2007-07-25 15:27:19,223 [main] S2Containerを作成します。path=s2hibernate-
jpa.dicon
DEBUG 2007-07-25 15:27:19,254 [main] S2Containerを作成します。path=javaee5.dicon
DEBUG 2007-07-25 15:27:19,301 [main] S2Containerを作成します。path=j2ee.dicon
DEBUG 2007-07-25 15:27:19,333 [main] S2Containerを作成します。path=jta.dicon
DEBUG 2007-07-25 15:27:19,583 [main] S2Containerを作成しました。path=jta.dicon
DEBUG 2007-07-25 15:27:19,583 [main] S2Containerを作成します。path=jdbc.dicon
DEBUG 2007-07-25 15:27:19,629 [main] S2Containerを作成します。path=jdbc-
extension.dicon
DEBUG 2007-07-25 15:27:19,723 [main] S2Containerを作成しました。path=jdbc-
extension.dicon
DEBUG 2007-07-25 15:27:19,864 [main] S2Containerを作成しました。path=jdbc.dicon
DEBUG 2007-07-25 15:27:19,895 [main] S2Containerを作成しました。path=j2ee.dicon
DEBUG 2007-07-25 15:27:19,895 [main] S2Containerを作成します。path=jpa-support.dicon
DEBUG 2007-07-25 15:27:19,958 [main] S2Containerを作成します。path=jpa-support-
smart.dicon
DEBUG 2007-07-25 15:27:20,239 [main] S2Containerを作成しました。path=jpa-support
-smart.dicon
DEBUG 2007-07-25 15:27:20,504 [main] S2Containerを作成しました。path=jpa-
support.dicon
DEBUG 2007-07-25 15:27:20,504 [main] S2Containerを作成します。path=ejb3tx.dicon
DEBUG 2007-07-25 15:27:20,551 [main] S2Containerを作成しました。path=ejb3tx.dicon
DEBUG 2007-07-25 15:27:20,551 [main] S2Containerを作成しました。path=javaee5.dicon
DEBUG 2007-07-25 15:27:20,614 [main] S2Containerを作成しました。path=s2hibernate
-jpa.dicon
DEBUG 2007-07-25 15:27:20,723 [main] S2Containerを作成しました。path=jpa.dicon
DEBUG 2007-07-25 15:27:20,723 [main] S2Containerを作成します。path=kuina-dao-
builder.dicon
DEBUG 2007-07-25 15:27:21,036 [main] S2Containerを作成しました。path=kuina-dao-
builder.dicon
DEBUG 2007-07-25 15:27:21,036 [main] S2Containerを作成しました。path=kuina-dao.dicon
DEBUG 2007-07-25 15:27:21,036 [main] S2Containerを作成します。path=dxo.dicon
DEBUG 2007-07-25 15:27:21,255 [main] S2Containerを作成しました。path=dxo.dicon
DEBUG 2007-07-25 15:27:21,270 [main] S2Containerを作成します。path=s2axis2.dicon
DEBUG 2007-07-25 15:27:21,551 [main] S2Containerを作成しました。path=s2axis2.dicon
DEBUG 2007-07-25 15:27:21,551 [main] S2Containerを作成します。path=
s2axis2Deploy.dicon
DEBUG 2007-07-25 15:27:21,614 [main] S2Containerを作成しました。path=
s2axis2Deploy.dicon
DEBUG 2007-07-25 15:27:21,614 [main] S2Containerを作成します。path=
s2axis2Client.dicon
DEBUG 2007-07-25 15:27:22,239 [main] S2Containerを作成しました。path=
s2axis2Client.dicon
DEBUG 2007-07-25 15:27:22,239 [main] S2Containerを作成しました。path=app.dicon
WARN 2007-07-25 15:27:23,270 [main]
org.seasar.teeda.extension.config.taglib.impl.ServletContextTaglibManagerImplの
プロパティ(servletContext)が見つからないので設定をスキップします
Exception in thread "main" java.lang.NullPointerException
at
org.seasar.teeda.extension.config.taglib.impl.ServletContextTaglibManagerImpl.scanJars(ServletContextTaglibManagerImpl.java:47)
at
org.seasar.teeda.extension.config.taglib.impl.ServletContextTaglibManagerImpl.init(ServletContextTaglibManagerImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:73)
at
org.seasar.framework.container.assembler.AbstractMethodAssembler.invoke(AbstractMethodAssembler.java:94)
at
org.seasar.framework.container.assembler.DefaultInitMethodAssembler.assemble(DefaultInitMethodAssembler.java:49)
at
org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:69)
at
org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:48)
at
org.seasar.framework.container.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:76)
at
org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.java:236)
at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:563)
at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.java:560)
at
org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(SingletonS2ContainerFactory.java:150)
at s2axis.example.logic.ReceiveEcho2.getEcho(ReceiveEcho2.java:26)
at s2axis.example.logic.ReceiveEcho2.main(ReceiveEcho2.java:22)
-----
ちなみに,Teedaの ServletContextTaglibManagerImpl.java:47 あたりを見てみますと,
31: public class ServletContextTaglibManagerImpl extends AbstractTaglibManager {
32:
33: private static Logger logger = Logger
34: .getLogger(ServletContextTaglibManagerImpl.class);
35:
36: private ServletContext servletContext;
37:
38: public void setServletContext(ServletContext servletContext) {
39: this.servletContext = servletContext;
40: }
41:
42: public void init() {
43: scanJars("/WEB-INF/lib/");
44: }
45:
46: public void scanJars(String libPath) {
47: Set jars = servletContext.getResourcePaths(libPath);
となっており,
要はinit()に入ったときにServletContextがまったくフィールドにセットされ
ていないくていきなりコケている様子です.
この状態でTeedaがまともに動かないのも確認済みでして,
<span id="hoge">Oh, my god!!</span>
を表示するとき,Pageクラスでhogeをどう変更しても画面出力の結果は
<span id="hoge">Oh, my god!!</span>
のままで,spanタグもそのまんまです.
非常に長くなりましたが,やっぱり,S2ContainerとTeedaとS2Axisが正しく
動作する順番とかがあるのかなと・・・
web.xml あたりを疑っているのですが・・・
以上,よろしくおねがいいたします.
Seasar-user メーリングリストの案内