@WebMethod @Path("/getSubmissionsForAssignment") @Produces("text/plain") @GET public String getSubmissionsForAssignment( @WebParam(name = "sessionId", partName = "sessionId") @QueryParam("sessionId") String sessionId, @WebParam(name = "assignmentId", partName = "assignmentId") @QueryParam("assignmentId") String assignmentId) { try { Session s = establishSession(sessionId); Assignment assign = assignmentService.getAssignment(assignmentId); List subs = assignmentService.getSubmissions(assign); // build the xml LOG.debug("about to start building xml doc"); Document dom = Xml.createDocument(); Node all = dom.createElement("submissions"); dom.appendChild(all); for (int i = 0; i < subs.size(); i++) { AssignmentSubmission thisSub = (AssignmentSubmission) subs.get(i); LOG.debug("got submission" + thisSub); Element uElement = dom.createElement("submission"); uElement.setAttribute("feedback-comment", thisSub.getFeedbackComment()); uElement.setAttribute("feedback-text", thisSub.getFeedbackText()); uElement.setAttribute("grade", thisSub.getGrade()); uElement.setAttribute("status", thisSub.getStatus()); uElement.setAttribute("submitted-text", thisSub.getSubmittedText()); List submitters = thisSub.getSubmitterIds(); for (int q = 0; q < submitters.size(); q++) { uElement.setAttribute("submitter-id", (String) submitters.get(q)); } List submissions = thisSub.getSubmittedAttachments(); // Element attachments = dom.createElement("attachment"); for (int q = 0; q < submissions.size(); q++) { // Element attachments = dom.createElement("attachment"); Reference ref = (Reference) submissions.get(q); Entity ent = ref.getEntity(); uElement.setAttribute("attachment-url", ent.getUrl()); // all.appendChild(); } all.appendChild(uElement); } String retVal = Xml.writeDocumentToString(dom); return retVal; } catch (Exception e) { LOG.error( "WS getSubmissionsForAssignment(): " + e.getClass().getName() + " : " + e.getMessage()); } return "<submissions />"; }