SSH2+CXF_v2.1.2时,服务器端(webservice)的自动装载(注入)并不成功。
发现服务器启动的时候发现一条信息:org.apache.cxf.common.injection.ResourceInjector visitField
info: failed to resolve resource com.skyarm.system.service.teacherServiceImpl/teacherDao.
解决方法:
<!--发布WebService接口-->
<jaxws:endpoint id="TeacherService" implementor="#teacherService" implementorClass="com.skyarm.system.service.TeacherServiceImpl" address="/TeacherService"/>
@WebService @Service("teacherService") public class TeacherServiceImpl implements TeacherService { @Resource private TeacherDao teacherDao; public CreateStat createTeacher(@WebParam(name = "teacher")TeacherPO teacher) { return this.teacherDao.createTeacher(teacher); }
public void setTeacherDao(TeacherDao teacherDao) { this.teacherDao = teacherDao; }
}
主要区别是原本jaxws中的implementor属性是直接写实现类的fullClass,
现在改成ref bean的方式,使用@Service注解标记实现类为一个bean,
然后implementor属性用# + bean的名字来指向这个bean即可。