2012-09-19 36 views
0

我想从我的Endpoint处理程序方法中访问我在/WEB-INF/springws-servlet.xml中定义的bean。目前我正在诉诸如下所示。有没有更好的方式来访问上下文来获取Endpoint中的bean。在@Endpoint中访问应用程序上下文Spring WS 1.5

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

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

class MyEndPoint{ 

    @Autowired MyBean mybean 
.. 
} 
+0

谢谢了...! – user290870

+0

使用注释来注入bean时,应该查看[@Configuration](http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/context/annotation/Configuration .html)在Spring中的类也是如此!这会更加简化这一点。 – evandongen

相关问题