如何获取已被tomcat托管的spring容器内的对象?

nearnearaway 2010-10-08 10:27:30
RT,已经启动了web容器,spring 也已经被加载了

原来的目的很简单,就是一个普通的webservice 在service内通过spring 注入了几个dao类

测试发现几个dao全部为null 琢磨了很久,发现自己很SB

webservice 提供访问的service 肯定不是从spring 内拿出来的 所以几个dao属性为null是肯定的

先想到一个古老的方法,原来做jsp时用到的 一个WebApplicationContext 不过这是jsp页面的

现在是普通的class 内 请问有没这种相似util类?

或者有经验的可以说下 webservice与spring 的这类 如何集成?
...全文
449 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
czmchen 2010-10-08
问题解决了就好,lz用xfire,怎么不用它的安全,他的安全用的还可以
回复
nearnearaway 2010-10-08
问题 已经解决了,虽然没有想要的答案,还是感谢下大家!分都散了

最后在说下,肯能大家没看明白我写的,spring注入没有问题,这题的关键也不是spring注入问题

主要是webservice 的service在作怪!在spring 里添加了 这个service 并配置了其属性

其实这些步骤 都没有错,这个service的属性也被注入成功了。

关键在于我访问webservice时,调用的那个service 并不是从spring 中拿出来

应该是 Xfire 框架自己实例化的(我也没有具体深入研究)。

所以这个被调用的service 和spring中配置service 其实是2个不同的对象。

因此调用时报NUllpoint 错误 。

解决办法:(给有需要的朋友)----相当赞

我用的比较不错是:

1.创建一个类并让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.

示例代码:

  import org.springframework.beans.BeansException;

  import org.springframework.context.ApplicationContext;

  import org.springframework.context.ApplicationContextAware;

  public class MyApplicationContextUtil implements ApplicationContextAware {

  private static ApplicationContext context;

  //声明一个静态变量保存

  public void setApplicationContext(ApplicationContext contex) throws BeansException {

  this.context=contex;

  }

  public static ApplicationContext getContext(){

  return context;

  }

  }

  2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.

  例:

  <!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性-->

  <bean class="org.ing.springutil.MyApplicationContextUtil"></bean>

  3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.


回复
czmchen 2010-10-08
既然tomcat托管了spring,那你写个简单的spring注入看看拿不拿到对象?
回复
nearnearaway 2010-10-08
...

都说是tomcat 已经托管了spring 容器了

再去applicationContext ctx=new ........tomcat 就会有2个spring 容器

那干脆tomcat 不要加载spring 算了,还不如自己手写
回复
weipj007 2010-10-08
1.在服务启动的时候,初始化好你需要用到的bean.
2。在普通类中用读取spring配置文件的方法。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-08 10:27
社区公告
暂无公告