Hi, I am trying to import the UserAccessor in my servlet class. However, whenever I use the servlet module, this error pops up:
com.atlassian.util.concurrent.LazyReference$InitializationException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘dso.intern.plugin.BulkUserCreatorToolServlet’: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.atlassian.confluence.user.UserAccessor’ available: expected
at least 1 bean which qualifies as autowire candidate.
Here’s my code:
@Named("BulkUserCreatorToolServlet")
public class BulkUserCreatorToolServlet extends HttpServlet{
private final UserAccessor userAccessor;
public BulkUserCreatorToolServlet(UserAccessor userAccessor){
this.userAccessor = userAccessor;
}
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Configure a repository (to ensure a secure temp location is used)
ServletContext servletContext = this.getServletConfig().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);
// Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory);
try{
//Parse the request to get file items List<FileItem> fileItems = upload.parseRequest(request);
// Process the uploaded items Iterator<FileItem> iter = fileItems.iterator();
String contentType = null; while(iter.hasNext()){
FileItem item = iter.next();
if(!item.isFormField()){
String content = item.getString();
StringReader sReader = new StringReader(content);
Iterable<CSVRecord> records = CSVFormat.DEFAULT.withFirstRecordAsHeader().parse(sReader);
(CSVRecord record : records){
String username = record.get("Username"); //UTF-8 BOM
String fullname = record.get("Fullname");
String email = record.get("Email");
String password = record.get("Password");
String groupsToBeAddedInto = record.get("GroupsToBeAddedInto");
DefaultUser defaultUser = new DefaultUser(username, fullname, email);
ConfluenceUser newUser = userAccessor.createUser(defaultUser, Credential.unencrypted(password));
userAccessor.addMembership(UserAccessor.GROUP_CONFLUENCE_USERS, username); } } }
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter(); out.println("<!DOCTYPE html>");
out.println("<html><head>"); out.println("<meta name=\"decorator\" content=\"atl.admin\" />");
out.println("<title>Response Page</title></head></html>"); }
catch(FileUploadException e){ e.printStackTrace(); }
catch(Exception e){ e.printStackTrace(); } } }
What did I do wrong? Thank you
Hi Chong,
Looks like you got your answer here: https://community.developer.atlassian.com/t/no-qualifying-bean-of-type-com-atlassian-confluence-user-useraccessor-available-error/49254
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.