tomcat - 将服务传递给 grails 中的非服务?

标签 tomcat grails groovy junit autowired

我有一个非服务类,它是这样定义的:

class A{
   B b
   A( B b ){ this.b = b }
}

其中 B 是一个 grails 服务。在我的单元测试中,我试过这个:

A a = new A( new B() );

然而,出于某种原因,b 永远不会被设置,并且变量 b [local, the argument to the mehod] 在 Intelli-J 中甚至不可见运行测试时的调试器。也就是说,我可以将参数重命名为 service,调试器将其显示为未定义。

当我尝试启动服务器时,我得到 Initialization of bean failed;嵌套异常是 java.lang.reflect.MalformedParameterizedTypeException,所以我假设这是相关的。

这是怎么回事?

最佳答案

这似乎是一个奇怪的场景。 A在做什么?有没有可能 A 真的是一个服务?

我建议将 A 设为服务,在这种情况下,您可以按照正常使用将 B 服务注入(inject)其中。

我不认为执行“new B()”真的有效,除非 B 不依赖于任何东西( Autowiring 的字段)。也许将 B 注入(inject)测试会更好?

关于tomcat - 将服务传递给 grails 中的非服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847192/

相关文章:

grails - 确保在 springSecurityFilterChain 之后附加来自插件的 web.xml 过滤器映射

java - Groovy Mockito NullPointerException

Groovy swingbuilder 文档和示例

groovy - Gradle测试失败,并显示NullPointerException

linux - Tomcat什么是Thread Total Started Count

java - 无法编译 JSP : The type java. util.Map$Entry 的类无法解析。它是从所需的 .class 文件间接引用的

grails - 根据 hasman 关系中的最新记录搜索记录

javascript - 如何在 Controller View 中显示消息框?

apache - Docker 在运行 Docker 启动命令时无法执行初始化脚本

java - 如何使用 log4j 在我的项目目录中写入文件?