我将尝试将DAO注入到CXF服务中。为此,我正在使用xml配置。
在我的app-servlet.xml文件中,我添加了以下条目:
BlogEntriesImpl实现了服务接口,它有一个dao属性和一个setter方法。
我调试了应用程序并发现,在启动时会实例化一个BlogEntriesImpl的对象,并且该对象具有dao属性。我认为这是通过app-servlet.xml文件中的bean配置完成的。
然而,当我调用服务时,会出现NullPointerException异常。这里又使用了另一个BlogEntriesImpl的实例。
为了解决问题,我将dao属性声明为静态变量,放在服务实现类(BlogEntriesImpl)中,变量在应用程序启动时被设置。但我不喜欢这种解决方案。
有更好的方法将dao注入到CXF服务中吗?
谢谢!
在我的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的实例。
为了解决问题,我将dao属性声明为静态变量,放在服务实现类(BlogEntriesImpl)中,变量在应用程序启动时被设置。但我不喜欢这种解决方案。
有更好的方法将dao注入到CXF服务中吗?
谢谢!