0

Endpoint ハンドラー メソッド内から /WEB-INF/springws-servlet.xml で定義した Bean にアクセスしたいと考えています。現在、私は以下に示すように頼っています。エンドポイント内で Bean を取得するためにコンテキストにアクセスするより良い方法はありますか。

ApplicationContext ctx = new FileSystemXmlApplicationContext("webapp/WEB-INF/springws-servlet.xml");

BeanType mybean = (BeanType) ctx.getBean("mybean");

jaxb2marshaller と同じです。springws-servlet.xml にセットアップしました。代わりにエンドポイントでアクセスするにはどうすればよいですか

JAXBContext jc = JAXBContext.newInstance("com.test.mypackage");
Marshaller m = jc.createMarshaller();

以下は私の webapp/WEB-INF/springws-servlet.xmlwebapp/WEB-INF/springws-servlet.xml です

  <bean class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter">
    <constructor-arg ref="jaxbmarshaller"/>
  </bean>

  <bean id="endpointMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping"/>


  <bean id="jaxbmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="classesToBeBound">
        <list>
            <value>org.hr_xml._3.SyncHRMasterDataType</value>
            <value>org.openapplications.oagis._9.ConfirmBODType</value>
        </list>
    </property>
  </bean>



  <bean id="mybean" class="com.test.package">
    <property name="releaseID" value="1"/>
  </bean>

どうもありがとう。

4

1 に答える 1

1

エンドポイント内の依存関係で自動配線する必要があります。

class MyEndPoint{

  @Autowired MyBean mybean
..
}
于 2012-09-20T00:24:33.650 に答える