在做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;
}