在做webservice测试时,不知道为什么通过ioc的方式一直不能获取到service层的对象.最终通过百度,发现有一些如下的处理.所以将例子写出来,方便以后碰到问题时解决,也可以作为其他需要的人的参考.
?
import org.apache.log4j.Logger;
import org.springframework.remoting.jaxrpc.ServletEndpointSupport;
?/**
?* <p> Title: 用户信息的webservice实现类</p>
?* <p> Description: </p>
?* <p> Copyright: Copyright (c) 2012 2012-2-13</p>
?* <p> Company: pccw</p>
?* @author xuwh
?* @version 1.0
?*/
public class UserWebService extends ServletEndpointSupport implements IUserWebService{
?private static final Logger log = Logger.getLogger(UserWebService.class);
?private IUserService userService;
?protected void onInit()
?{
??userService =(IUserService)getApplicationContext().getBean("userService");
?}
?
?/*
? * webservice内部定义public的方法,仅仅一个,否则需要在server-config.wsdd文件中指定多个方法名称
? * (non-Javadoc)
? * @see com.webservice.IUserWebService#getUserNameById(java.lang.String)
? */
?public String getUserNameById(String userId)throws Exception
?{
??String userName="";
??try{
???log.info("调用webservice方法getUserNameById开始");
???User user = userService.findUserById(userId);
???userName = user.getUsername();
???log.info("调用webservice方法getUserNameById成功");
??}catch(Exception e)
??{
???log.error("调用webservice方法getUserNameById异常");
???throw e;
??}
??return userName;
?}
?