英文:
jira rest expected at least 1 bean which qualifies as autowire candidate for this dependency
问题
以下是翻译好的内容:
我正在为 Jira Atlassian 开发 REST 插件,遇到了这样的问题。每当我希望我的 API 显示出来时,我需要按照以下格式为我的新 API 添加空构造函数:
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/import-issues")
public class ImportIssuesRestResource {
private ImportIssuesAction importIssuesAction;
public ImportIssuesRestResource() {
}
public ImportIssuesRestResource(final ImportIssuesAction importIssuesAction) {
this.importIssuesAction = importIssuesAction;
}
@GET
@Path("issueNumber")
@Produces(MediaType.APPLICATION_JSON)
public Response getFields() {
return Response.ok().entity(importIssuesAction.getIssueNumber()).build();
}
}
然而我想要的是像这样的代码:
@Scanned
@Path("/import-issues")
public class ImportIssuesRestResource{
private ImportIssuesAction importIssuesAction;
@Inject
public ImportIssuesRestResource(final ImportIssuesAction importIssuesAction) {
this.importIssuesAction = importIssuesAction;
}
@GET
@Path("issueNumber")
@Produces(MediaType.APPLICATION_JSON)
public Response getFields() {
return Response.ok().entity(importIssuesAction.getIssueNumber()).build();
}
}
具有注入构造函数和 @Scanned。当我使用第二个代码版本时,我遇到了以下错误:
Error creating bean with name 'rest.ImportIssuesRestResource': Unsatisfied dependency expressed through constructor argument with index 0 of type [action.ImportIssuesAction] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
其他的 API 也有类似的注入构造函数,并使用了 @Scanned 或 @Named 注解。我需要我的 API 实时从类中获取信息。然而目前我在公共的 getter 方法 getIssueNumber 中遇到了空指针异常。我在 ImportIssuesAction 类中使用了 @Named 注解。
英文:
I am developing rest plugin for jira atlassian and I have this kind of problem.
every time I want that my apis are showing up I need to add empty constructor to my new api in this format
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/import-issues")
public class ImportIssuesRestResource {
private ImportIssuesAction importIssuesAction;
public ImportIssuesRestResource() {
}
public ImportIssuesRestResource(final ImportIssuesAction importIssuesAction) {
this.importIssuesAction = importIssuesAction;
}
@GET
@Path("issueNumber")
@Produces(MediaType.APPLICATION_JSON)
public Response getFields() {
return Response.ok().entity(importIssuesAction.getIssueNumber()).build();
}
}
However what I want is something like this
@Scanned
@Path("/import-issues")
public class ImportIssuesRestResource{
private ImportIssuesAction importIssuesAction;
@Inject
public ImportIssuesRestResource(final ImportIssuesAction importIssuesAction) {
this.importIssuesAction = importIssuesAction;
}
@GET
@Path("issueNumber")
@Produces(MediaType.APPLICATION_JSON)
public Response getFields() {
return Response.ok().entity(importIssuesAction.getIssueNumber()).build();
}
}
with injected constructor and @Scanned. I get this error when I am using the second version of code.
Error creating bean with name 'rest.ImportIssuesRestResource': Unsatisfied dependency expressed through constructor argument with index 0 of type [action.ImportIssuesAction] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
The others api have similar injected constructor and using annotations @Scanned or @Named. I need my api real-time getting information from class. However currently I am getting NullPointerException in rest of my public getter getIssueNumber. I am using @Named in class ImportIssuesAction.
答案1
得分: 0
似乎 ImportIssuesAction 在你的 atlassian-plugin.xml 中尚未声明为组件导入项。
链接:https://community.atlassian.com/t5/Answers-Developer-Questions/Components-injection-with-Spring-Scanner/qaq-p/553801
英文:
Looks like ImportIssuesAction has not been declared as a componentimport in your atlassian-plugin.xml
https://community.atlassian.com/t5/Answers-Developer-Questions/Components-injection-with-Spring-Scanner/qaq-p/553801
专注分享java语言的经验与见解,让所有开发者获益!
评论