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);
int i = 0;
for(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");
i++;
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