Java SpringWS中的自定义上下文

Java SpringWS中的自定义上下文,java,web-services,spring,javabeans,spring-ws,Java,Web Services,Spring,Javabeans,Spring Ws,我正试图以类似于我对spring上下文所做的方式自定义spring ws-servlet上下文。对于服务器启动时初始化的初始上下文,我扩展了ContextLoader并实现了ServletContextListener类,这与org.springframework.web.context.ContextLoaderListener类的功能类似。我可以通过重写customizeContextServletContext、ConfigurableWebApplicationContext应用上下文方

我正试图以类似于我对spring上下文所做的方式自定义spring ws-servlet上下文。对于服务器启动时初始化的初始上下文,我扩展了ContextLoader并实现了ServletContextListener类,这与org.springframework.web.context.ContextLoaderListener类的功能类似。我可以通过重写customizeContextServletContext、ConfigurableWebApplicationContext应用上下文方法以及基于属性添加/删除可选上下文xml文件来自定义初始上下文。我能够将这个类设置为web.xml文件中的侦听器,而不是Spring中的默认ContextLoaderListener,并且它可以按预期工作

我希望对在WEB-INF\spring-ws-servlet.xml中定义的所有bean采用类似的spring ws-servlet上下文方法,但我还没有找到任何解决方案。我能想到的唯一一件事是让我的自定义上下文加载器也生成一个包含“可选”bean的xml文件,并让SpringWSServlet上下文导入该文件。然而,这是一个解决方案,我认为必须有一个更好的方法。在调用第一个web服务时,有人对如何定制SpringWSServlet上下文有什么建议吗

我使用的是Spring2.5.6和SpringWS1.5.9


提前谢谢。

我找到了解决这个问题的办法。我创建了一个扩展MessageDispatcherServlet的类,并重写了postProcessWebApplicationContext方法。在该方法中,我根据属性有条件地添加可选的上下文位置。调用此方法后,父对象调用上下文上的refresh方法,并加载其他上下文


有人向我建议的另一个解决方案是创建一个自定义名称空间,并创建一个名称空间处理程序,以便在满足条件的情况下执行导入。

我不确定是否理解您的意思。ContextLoaderListener逻辑适用于根WebApp上下文,而不是servlet上下文。Spring WS servlet仍然可以访问根webapp上下文,就像您以前使用普通Spring servlet所做的那样。您可以声明一个单独的xml文件,在其中可以声明Spring WS bean。这里有一个例子,这个例子使用SpringFramework3.x.x和SpringWS2.x.x感谢你们两位的回复。我知道ContextLoaderListener逻辑适用于根webapp上下文,而不是servlet上下文。我正在尝试自定义servlet上下文。我在context.xml中定义了几个bean。这些bean与根webapp上下文一起加载。然后,我在spring-ws-context.xml中将端点定义为bean。除非某个属性为true或false,否则这些端点中的一些是不需要的,因此我不想加载它们。我想定制SpringWSServlet中定义的servlet上下文。使用注释映射的端点。