[Seasar-user:19951] S2Axis2における自動バインディング不動作
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2010年 7月 7日 (水) 16:16:11 JST
はじめまして、mtと申します。
以前から稼働しておりますFlex+Seasar2のシステムにおいて、S2Axis2を
適用して、Seasar2側で実装されているサービスクラスをWebサービスとして
公開したいと思っています。
早速、S2Axis2をダウンロードして試してみました。何とか動作する
ところまでこぎつけたものの、@RemotingServiceのサービスクラスの中で
@Bindingで定義されているプロパティが、Flexから呼び出したときには
自動インジェクションされるのに、Webサービスでの呼び出しのときには、
インジェクションされません。
S2Axisの説明では、「S2が提供するDIやAOPをフルに活用したコンポーネン
トを・・・Webサービスとして公開」できるとのことですが、どのように
対処すればいいでしょうか?
クラスやdiconファイルのあらましは、次の通りです。
・クラス
@RemotingService
public class HogeServiceImpl implements HogeService {
@Binding
private THogeJdbc hogeJdbc;
public List<THoge> find() throws Exception {
THoge hoge = new THoge();
menu.setCd("emp");
return hogeJdbc.getHogeByName(hoge); ←このhogeJdbcがnull
}
}
・aop.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 xmlns:xi="http://www.w3.org/2001/XInclude">
<include path="s2axis2.dicon"/>
<include path="dao.dicon"/>
<include path="convention.dicon"/>
<include path="aop.dicon"/>
<include path="remoting_amf3.dicon"/>
<include path="s2jdbc.dicon"/>
<include path="deploy.dicon"/>
<xi:include href="/app-aop.dicon"/>
</components>
・deploy.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components>
<component name="Hoge" class="jp.co.xxx.hogepj.web.hoge.impl.
HogeServiceImpl">
<meta name="axis-service"/>
</component>
</components>
・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>
<filter>
<filter-name>s2filter</filter-name>
...
<filter>
<filter-name>hotdeployfilter</filter-name>
...
<filter>
<filter-name>encodingfilter</filter-name>
...
<filter-mapping>
<filter-name>s2filter</filter-name>
...
<servlet>
<servlet-name>s2servlet</servlet-name>
<servlet-class>org.seasar.framework.container.servlet.
S2ContainerServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>gateway</servlet-name>
<servlet-class>org.seasar.flex2.rpc.remoting.RemotingGateway</
servlet-class>
<load-on-startup>3</load-on-startup>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</
servlet-class>
<init-param>
<param-name>repository</param-name>
<param-value>/WEB-INF</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>s2servlet</servlet-name>
<url-pattern>/s2servlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>gateway</servlet-name>
...
<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>
<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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
以上、よろしくお願いします。
Seasar-user メーリングリストの案内