[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 メーリングリストの案内