Dubbo: 有人遇到过在servlet中调用dubbo服务,使用注解报空吗???

Created on 24 Oct 2017  ·  3Comments  ·  Source: apache/dubbo

//servlet代码如下
public class WorkServlet extends HttpServlet {
@Reference(interfaceName = "com.hlink.base.service.CacheService")
private CacheService cacheService;
@Reference(interfaceName = "com.hlink.userFile.Service.UserFileService")
private UserFileService userFileService;
private static final Logger logger = Logger.getLogger(WorkServlet .class);
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
logger .info(cacheService);
cacheService.setStringValue("key","value");
}
}

spring-bean.xml配置:





threadpool="fixed" threads="100" />
//在配置文件中直接扫描servlet包路径

web.xml配置

  <servlet>
<servlet-name>headHandlerServlet</servlet-name>

com.XXX.gate.http.servlet.WorkServlet


headHandlerServlet
/uploadFile


contextConfigLocation
classpath:applicationContext.xml

不知道为什么引用失败
因为服务提供方的配置是确认没问题的,在非servlet中调用都没有问题

All 3 comments

可以尝试扩展 HttpServletBean

如果没记错的话,servlet默认不属于spring容器的bean, 所以你这个注解是不被扫描的。
可以将这个servlet使用spring的方式 ServletRegistrationBean 来把这个servlet注册到spring容器里...

参考 @mercyblitz @Gonzo-Tan 的回复,要使用spring作用域内的实现才可以,原生是无法注入的

Was this page helpful?
0 / 5 - 0 ratings