我正在尝试将DAO注入CXF服务。为此,我使用xml配置。将DAO注入CXF服务
在我的应用程序-servlet.xml中我已经添加下面的条目:
<bean id="blogService" class="blog.BlogEntriesImpl">
<property name="blogDao" ref="blogDao" />
</bean>
blogDao豆也在此文件中定义。
该服务被配置在另一个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实例。
为了解决此问题,我将service实现类(BlogEntriesImpl)中的dao属性声明为静态。该变量在应用程序的开始处设置。但我不喜欢这个解决方案。
有没有更好的方法将注入到CXF服务?
预先感谢您!