访问@Endpoint Spring WS 1.5中的应用程序上下文

时间:2012-09-19 23:24:46

标签: web-services spring spring-mvc spring-ws

我想从我的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>

非常感谢。

1 个答案:

答案 0 :(得分:1)

您应该只在端点内依赖自动装配:

class MyEndPoint{

  @Autowired MyBean mybean
..
}