【发布时间】:2012-07-07 14:09:17
【问题描述】:
我正在尝试将 DAO 注入 CXF 服务。为此,我正在使用 xml 配置。
在我的 app-servlet.xml 中,我添加了以下条目:
<bean id="blogService" class="blog.BlogEntriesImpl">
<property name="blogDao" ref="blogDao" />
</bean>
blogDao bean 也在这个文件中定义。
服务在另一个xml文件中配置:
<import resource="classpath:META-INF/cxf/cxf.xml" />
<jaxws:endpoint id="blogService" implementor="blog.BlogEntriesImpl"
address="/Blog1" />
BlogEntriesImpl 实现了服务接口。它有一个 dao 属性和一个 setter 方法。
我调试了应用程序并发现,BlogEntriesImpl 的一个实例在开始时被实例化,并且它具有 dao 属性。我会说它是由 app-servlet.xml 中的 bean 配置完成的。
但是,当我调用服务时,会抛出 NullPointerException。这是另一个正在使用的 BlogEntriesImpl 实例。
为了解决这个问题,我将服务实现类 (BlogEntriesImpl) 中的 dao 属性声明为静态。该变量在应用程序启动时设置。但我不喜欢这种解决方案。
有没有更好的方法将 dao 注入到 CXF 服务中?
提前谢谢你!
【问题讨论】:
标签: java web-services spring dependency-injection cxf