springboot+dubbo在写单元测试的时候controller中的@Reference注解属性为null 5C

问题描述
项目中运用springboot+dubbo注解方式的配置开发,正常启动项目没有什么问题,但是当我在写单元测试的时候,发现@Reference标注的属性为null,导致调用空指针异常.

相关代码
待测试方法:

 @RestController
@RequestMapping("/api/user")
public class UserController {

    @Reference(version = "${dubbo.service.version}")
    private IUserService userService;

    @PostMapping(value="/login", produces="application/json;charset=UTF-8")
    public JsonApi login(String username, String password) {
        User search = new User();
        search.setUsername(username);
        User user = userService.selectUserBy(search);
        if (StringUtils.isEmpty(user)){
            search.setUsername(null);
            search.setEmail(username);
            user = userService.selectUserBy(search);
        }
        if (StringUtils.isEmpty(user)){
            throw new AuthorizeException(ErrorCode.USER_UNKNOWN_ACCOUNT);
        }
        return JsonApi.isOk()..data(user);
    }
}

测试方法:

 @RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@SpringBootTest
public class UserControllerTest {

    private MockMvc mvc;

    @Before
    public void setUp() {
        mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();
    }

    @Test
    public void login() throws Exception {
        RequestBuilder request = post("/api/user/login")
                .contentType(MediaType.APPLICATION_JSON)
                .param("username","test")
                .param("password","123456");
        String rs = mvc.perform(request)
                //.andDo(print())
                .andExpect(status().isOk())
                .andReturn()
                .getResponse()
                .getContentAsString();
        System.out.println(rs);
    }
}

在运行测试用例的时候,发现private IUserService userService为空

图片说明

网上都是说和springMvc集成的时候加载顺序会导致这个空指针异常,但是我的项目正常启动是可以访问的,就是在测试用例的时候回出现空,不知道什么原因.

是哪里的配置没有配置对吗?

0

2个回答

0

Dubbo的@Reference注解拿到的一个代理;
但@Reference生成的代理并不在Spring容器中

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
spring-boot框架dubbo在controlle中r注解@Reference注入service,但是调用方法时候,service报null空指针异常
        今天遇到一件奇怪的事情,之前都是很好的能正常运行,但是今天突然发现注解出问题,@Reference注解报错,null空指针异常,问题是代码都没有改动过,就突然这样。部分代码如下图:然后我百度查到的方法基本没用,但是这两篇文章有参考意义,大家可以看看:https://blog.csdn.net/zhou_java_hui/article/details/53039491https:/...
springboot整合dubbo项目controller层报null解决方法
一、springboot整合dubbo项目:n    1.springboot项目在整合dubbo项目:首先导入dubbo的依赖nnn        <dependency>n            <groupId>io.dubbo.springboot</groupId>n            <artifactId>spring-boot-s...
dubbo在controller中reference注解为空的问题深度解析
dubbo注解的使用使用非常简单,下面贴出关键部分//provider的配置文件n<?xml version="1.0" encoding="UTF-8"?> n<beans xmlns="http://www.springframework.org/schema/beans" n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Spring Dubbo 注解无效,空指针
由于将来的项目将使用spring boot技术为主题,这几天尝试了一下springboot+dubbo来完成业务架构的分层,这篇文章主要记录springboot搭建过程中遇到的dubbo空指针问题。rn首先建议遇到此问题的通道,看一下这篇文章rnhttp://www.oschina.net/question/1011127_144093?fromerr=7pRd3NKvrn这篇文章虽然没有解决掉s
Spring4.3整合dubbo纯注解配置以及解决dubbo中@Reference为null的问题
前言rnrn环境为jdk1.8,maven 3.3.3 , tomcat 8,dubbo 2.5.3rnrn接口rnrnrnrnpublic interface IUserService { rn User selectUser(int id);rn}rnrn注意User实体需要序列化实现Serializable接口。接口和实体抽出为公共jar包,供服务端和客户端使用。rnrn服务端配置rnrn实现类rnrnpackage ...
springboot集成dubbo实现服务提供调用
springBoot-Dubbo-Provide实现服务提供 springBoot-Dubbo-Consumer实现服务消费 jar通过maven进行管理 根据readme.txt进行操作
springboot引入dubbo后在controller中用Reference注入服务引用时null问题解决
在consumer.xml中增加dubbo的annotation扫描nnn&amp;lt;dubbo:annotation package=&quot;com.test.controller&quot; /&amp;gt;nnn在依赖文件中增加:nnn&amp;lt;dependency&amp;gt;n &amp;lt;groupId&amp;gt;com.alibaba.spring&amp;lt;/groupId&amp;gt;n &amp;lt;artifactId&amp;gt;s...
springMVC dubbo注解无效,service层返回空指针
引自oschina回复rnrnrn出现空指针的原因是:spring mvc扫描的时候根本无法识别@Reference ,同一方面,dubbo的扫描也无法识别Spring @Controller ,所以两个扫描的顺序要排列好,nn如果先扫了controller,这时候把控制器都实例化好了,再扫dubbo的服务,就会出现空指针。 rnrnrnrnrn将springMVC的配置与dubbo配置写在一个配
Spring Dubbo @reference注解报空指针原因及处理办法
如果使用过Spring + Dubbo会发现bean装配有三种方式nnSpring的 @Autowired和@ResourcennDubbo的 @Referencenn有时候有些场景三个随便用都可以,但有时候会报空指针问题,特别是@Referencenn1.场景nncontroller层@Reference 装配bean对象nnnnspring-consumer.xmlnnnn2.项目结构:nnn...
dubbo:@Reference 注解位注入 dubbo 下调用服务方法,一直报nullPointException
n在这里插入图片描述nnnimport jdk.nashorn.internal.ir.annotations.Reference;n引入失误nimport com.alibaba.dubbo.config.annotation.Reference;n导致 服务为nullnn
Dubbo-----'消费方'注解引用'提供方'的接口时报空指针
Dubbo-----'消费方'注解引用'提供方'的接口时报空指针
dubbo 的@Reference注解在springboot里面无效的问题
今天在用springboot整合dubbo的时候,提供方可以完成dubbo连接暴露接口, 但是消费方缺报了异常:nnorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dubboConsumerTest' defined in file [D:\hengling\HLCDN-...
dubbo服务注册进来为null的问题
n@Componentrnpublic class ErpGoodsServiceImpl implements GoodsService{rn rnstatic final Logger logger = LoggerFactory.getInstance().getLogger(ErpGoodsServiceImpl.class);rn@Referencern rncom.hupun.erp....
springMVC中使用dubbo注解配置的问题
问题,在controller中无法通过注解自动注入dubbo服务,n但是在service中可以自动注入。npackage com.sl;n@Controllernpublic class P{n//期望注入dubbo服务n@Reference(version="1.0.0")nprivate I0 o;n//注入servicen@Autowirednprivate S s;
关于单元测试时, spring 容器自动注入为 null 的问题
spring 中,大部分对象都靠 注解来进行对象注入,但是当写测试类时,new()方法得到一个对象,该对象里通过注解的方式获取的对象都为 null。只有当这个对象也是注入的,对象里面的注入 注解才生效。...
Spring学习之SpringMVC与Dubbo集成,消费端@Reference引用为NULL的问题
背景:rn之前项目中一直使用dubbox,最近dubbo社区又开始进行维护,公司正好又有一个新项目启动,本来想用spring-boot,正好进行下相关学习,奈何领导这关没过,还是让用最原始的spring-xml的配置方式,但是spring社区已经推荐用java代码配置的方式取代xml,所以应该顺应时代的潮流,采用最新的spring配置dubbo的方式,关于spring-boot的学习只能在课下进行了...
SSM框架+Dubbo+shiro的框架搭建,遇到的@Reference标签无法注入的情况
最近自己在搭建一个SSM+Dubbo+shiro的分布式框架,但是在搭建过程中,遇到了Dubbo服务无法使用@Reference标签注入的情况;nn nn错误展示nnnorg.apache.shiro.authc.AuthenticationException: Authentication failed for token submission [org.apache.shiro.authc.U...
spring mvc 调用dubbo出现了空指针的问题
今天在调controler中调用dubbo服务出现了空指针,用junit测试service是有值的,经网上查询,发现原来在controller扫描之后,扫描dubbo的@Reference就会发现之前的controller中没有注入就出现了空值针,所以dubbo一定要在controller扫描之前: 配置如下:
DUBBO服务为null的情况
最近开发公司项目,遇到了dubbo服务为空的情况,现在把出现的情况做个简单的总结:dubbo为空会报空指针异常!    1.第一种情况:引用有误,也就是再注入dubbo服务的时候,使用@Reference注解的时候,引用的并不是ali的dubbo,所以一直引入的都是错误的。导致注入为null;    这种情况比较常见,因为粗心大意导致import 文件错误,只需要认真检查。就可以找出问题所在。  ...
自定义test之dubbo注解的实现
本文是作者在使用dubbo开发的时候,在使用Junit写单元测试时,对于dubbo服务的消费者如果获取呢,最常用就是在测试类上加注解n@ContextConfiguration("/spring-test.xml"),把需要的dubbo服务、dubbo注册中心(如果有)、通信协议配置在spring-test.xml中,则可以像本地服务一样使用该bean的dubbo服务,启动的时候回启动sprin
springboot整合dubbo 纯注解
springboot整合dubbo +zookeeper 纯注解小Demo,需要的小伙伴可以试试
SpringBoot+Dubbo+Shiro 导致dubbo无法注入到Realm的问题解决方案
问题的原因加载顺序引起的。nn方案一:用spring-dubbo配置文件的形式, 这个注入应该没问题nn主要说方案二:采用dubbo注解@Reference注入, 在实际情况中, 由于shiro和dubbo加载顺序的原因, 会导致使用@Reference的bean注入到Realm中为null, 故在其他地方可以引用 该dubbo bean, 然后转化为spring bean,再用spring上下文...
controller层返回对象为null时自动过滤掉不返回
controller层返回对象为null时自动过滤掉不返回或者字段为null,过滤方法如下:1,要是只过滤某个VO对象上加上注解,即在该对象上加上该注解@JsonInclude(JsonInclude.Include.NON_NULL)即可2,要是过滤全局的输出对象则需要在配置文件中配置了,加入如下配置即可...
Dubbo 服务调用返回的对象部分属性返回为null
 最近调用dubbo服务时有两个奇怪现象;controller接收到bean参数后都有值,但是当调用服务时传过去的参数就部分为null了(比如remark在controller里查看bean对象是有值的,但是到facade服务层传递过去的bean中remark就没有值了);还有一个分页相关的,在封装的dao层中查到的数据bean中的属性是由数据的,但是在返回的pageBean对象中就部分参数为nu...
springboot+dubbo注入service报错,找了全网也没找到答案
springboot+dubbo注入service错误
SpringBoot的拦截器中依赖注入为null
该项目是基于SpringBoot框架的Maven项目。 n今天在拦截器中处理拦截逻辑时需要使用注解调用其他方法 并且要从配置文件中读取参数。所以我使用了以下注解:nnnn @Referencen CoreRedisService redisService;nn @Value("${channel}")n private String channel;nn @Value
Spring Boot、Dubbo项目Mock测试踩坑与总结
n n n 本文是对Spring Boot、Dubbo项目进行Mock测试的总结与踩坑实录。n搜索了一圈,居然没发现类似的文章,莫非用Dubbo的朋友们都不Mock测试,或者有其他的办法测试吗?n简单总结了一下,希望对大家能有一定参考意义。如果有更好的测试方法,请联系我的邮箱eacdy0000@126.com ,帮忙告知一下。n背景n手上有个整合了Dubbo的Spri...
Spring Boot 单元测试,注入失败,报空指针错误
        今天写代码,在test的类中@Autowired注入要测试的@Component类,但发现一运行就会报空指针异常java.lang.NullPointException,但发现使用new的方法的时候可以注入这个@Component类,但是要调用这个@Component中注入的其他的类时也会报空指针异常,在网上查了很多,比如说在idea软件里test的目录是在src下,但是都没有解决...
dubbo系列之@Reference注解解析原理(五)
前言n上文中我们讲解了@Service注解的解析原理,了解到Dubbo默认支持两种方式进行解析,一种是通过springboot 自动配置来做的,另外一种是通过DubboComponentScan 注解来解析的,本文继续也是以DubboComponentScan 的方式来讲解的。n源码入口ncom.alibaba.dubbo.config.spring.context.annotation.D...
关于springboot @reference 引用为空 null的解决
先说一下第二张种可用,XML形式的也可用(但是都用springboot用xml总觉得怪怪的)nn这个问题卡了我一天多,nn看了下网上这种形式的配置还是很多的,使用的io包的nnnnnn而另外一种nn参考https://www.cnblogs.com/zjfjava/p/9696086.htmlnnnnnnnnnn两种配置我用的第一种,也一直没问题nn服务也能注册进zookeeper中去n...
Spring整理系列(16)——通过单元测试理解spring容器以及dubbo+zookeeper单元测试异常处理
一、先说一个结论:单元测试与主项目的spring容器是隔离的,也就是说,单元测试无法访问主项目spring容器,需要自己加载spring容器。接下来是代码实例,WEB主项目出于运行状态,单元测试中可能会看到如下这样的代码:代码一:当前类加载式public class TestSpring { @Testn public void testSpring(){n LoginSe
springboot整合dubbo加上事务注解启动报错的问题
springboot整合dubbo加上事务注解启动报错的问题nn如果使用以下方式 n在其实现类中加入了事务注解nn@Reference(version = &quot;1.0.0&quot;, timeout = 30000)n private ShopService shopService;nnnn@Service(version = &quot;1.0.0&quot;)npublic class OrderFoodServic...
dubbo系列之@Reference注解
-
Spring 父类注入的属性 在子类中调用为null
在spring中注入属性的目标是实例而不是类n子类从父类继承的值是与实例无关的 所以子类的属性并没有被赋值nnn工作背景:n有一个BaseService 有3个Dao成员 DaoA DaoB DaoCn并且 spring 为这3个成员分别注入了值 这三个Dao是直接可以拿过来执行数据库访问的n但是有一个BaseService的子类 xxx n也是拿来执行数据库访问的 n表面上 它
【dubbo】dubbo注解方式及报空指针异常的处理方式
dubbo-provider:nnn&amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;n xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;n xmlns:dubbo=&quot;http://code.alibabatech.com/schema/dubb...
Dubbo引用服务null值问题
用Dubbo框架时,可能会碰到服务没有注册进来的情况,consumer获取provider的服务时,提供provider的服务器必须有一个网卡,如果安装过虚拟机,则会有多个虚拟网卡,导致注册到zookeeper中的地址可能和consumer中的不一样,这样会导致consumer在zookeeper中找不到provider的服务,会报空指针异常;
dubbo中关于@reference注解无法配置MethodConfig的解决方法
本文针对目前为止最新的dubbo版本2.6.2中存在的问题,ReferenceConfig中有一个List&amp;lt;MethodConfig&amp;gt; methods属性,但是@Reference注解里面并没有可以配置这个属性的地方(听dubbo的committer说下个版本会修复),以前写过一篇设置timeout属性的文章,可以通过parameters曲线救国,但是有些属性是不管用的,比如本次要说的...
Controller全局控制返回对象为null时自动过滤掉不返回
最近在做一个新的项目,所有的东西,从框架开始,都是一点点搞起来的,很多基础设施不完善,在controller层返回对象包含有null的字段就属于其中的一种.nn倘若返回的对象中不能过自动过滤掉null的属性,不仅是对流量的一种消耗,也给前段使用时带来麻烦,乱糟糟的,一点不简洁.nn在开发中为了解决这种问题,主要采用了两种解决方案,nn第一,使用注解nn第二,使用全局的xml配置方式nn这里注解比较...
springboot 集成dubbo,RPC 远程调用服务接口:提示服务空指针异常
1、错误出现的场景:今天本地模拟dubbo 的RPC远程调用,但是调用的服务总是提示“空指针异常”。rn出现上述情况的原因:只有一种可能需要扫描的service 对象,dubbo 扫描服务对象失败,而造成失败的原因:一:缺少dubbo 的jar 文件,二、dubbo 扫描包路径配置错误。rn我今天所犯的错误是第二种。rnrnrn 看源码:rndubbo 服务端消费代码错误截图:rnrnrn后面仔细
Dubbo @Autowired注入失败原因分析
错误:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'XXXX': 用的是Zookeeper+Dubbo  的分布式架构。在开发过程中渐渐熟悉系统,希望留下点痕迹让来着少走弯路。如果出现如上错误,请按下面步骤依次检查:1:引入JAR匹配一致      import org...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 中的注解学习 java课程的单元测试