Axis2+Spring开发时遇到Service注入为空的问题:
问题描述:在创建了Axis2类之后,想直接使用@Resource,将Spring的Service类直接注入到Axis2类中,但发现直接报空。代码如下:
配置类:server-config.wsdd
<service name="userWebService1" provider="java:RPC">
<parameter name="className" value="com.home.webservice.UserWebserviceImpl" />
</service>
服务JAVA类:UserWebserviceImpl.java
public class UserWebserviceImpl{
@Resource
private IUserService userService;
public String getUserId(String Username){
User u =new User();
u.setName(Username);
u=userService.getUserByName(u);
String id = String.valueOf(u.getId());
return id;
}
}
服务器就这些,客户端访问时,直接报空指针,说明testService没有注入成功。
由于本身这个实现方法是逆向生成的,并不是由spring进行管理的,所以使用注入的模式并不能得到结果,需要通过其他方式进行获取。
所以修改下类UserWebserviceImpl.java,如下:
@WebService
public class UserWebserviceImpl implements UserWebservice {
private static WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
@Override
public String getUserId(String Username) {
IUserService userService =(IUserService) context.getBean("userService");
User u =new User();
u.setName(Username);
u=userService.getUserByName(u);
String id = String.valueOf(u.getId());
return id;
}
}
转载于:https://my.oschina.net/java12/blog/739635