Hello. I want to add some functions on issue creating.
I have this webwork in my atlassian-plugin.xml:
<webwork1 key="unitera-create-issue-details" name="Unitera Create Issue Details"
class="com.atlassian.jira.web.action.issue.CreateIssueDetails">
<actions>
<action name="org.smedyou.tutorial.ComDescCreateIssueDetails"
alias="CreateIssueDetails"
roles-required="use">
<view name="error">/secure/views/createissue-details.jsp</view>
</action>
</actions>
</webwork1>
And this class, which extends CreateIssueDetails.class, as seen
package org.smedyou.tutorial;
import com.atlassian.gzipfilter.org.apache.commons.lang.exception.ExceptionUtils;
import com.atlassian.jira.bc.issue.IssueService;
import com.atlassian.jira.bc.issue.comment.CommentService;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.event.mau.MauEventService;
import com.atlassian.jira.issue.IssueFactory;
import com.atlassian.jira.issue.IssueInputParameters;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.TemporaryAttachmentsMonitorLocator;
import com.atlassian.jira.issue.comments.Comment;
import com.atlassian.jira.security.xsrf.RequiresXsrfCheck;
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.util.JiraUrlCodec;
import com.atlassian.jira.web.action.issue.CreateIssueDetails;
import com.atlassian.jira.web.action.issue.IssueCreationHelperBean;
public class ComDescCreateIssueDetails extends CreateIssueDetails {
private IssueService issueService;
private CommentService commentService;
public ComDescCreateIssueDetails(IssueFactory issueFactory, IssueCreationHelperBean issueCreationHelperBean, IssueService issueService, TemporaryAttachmentsMonitorLocator temporaryAttachmentsMonitorLocator) {
super(issueFactory, issueCreationHelperBean, issueService, temporaryAttachmentsMonitorLocator);
this.issueService = issueService;
}
@Override
@RequiresXsrfCheck
protected String doExecute() throws Exception {
String var1;
try {
this.createIssue();
if(this.hasAnyErrors()) {
var1 = "error";
return var1;
}
var1 = this.doPostCreationTasks();
} catch (Exception var6) {
this.log.error(var6, var6);
this.addErrorMessage(var6.getMessage() != null?var6.getMessage(): ExceptionUtils.getFullStackTrace(var6));
String var2 = "error";
return var2;
} finally {
((MauEventService)ComponentAccessor.getComponent(MauEventService.class)).setApplicationForThreadBasedOnProject(this.getProject());
}
return var1;
}
@Override
protected String doPostCreationTasks() throws Exception{
commentService = ComponentAccessor.getComponent(CommentService.class);
Comment comment1 = addComment("First coment!");
//from CreateIssueDetails.class
String issueKey = JiraUrlCodec.encode(this.getKey());
if(this.isIssueValid()) {
return this.getRedirect("/browse/" + issueKey);
} else {
this.errorMessages.clear();
return this.getRedirect("CantBrowseCreatedIssue.jspa?issueKey=" + issueKey);
}
}
private Comment addComment(String commentString, MutableIssue issue, ApplicationUser user) {
CommentService.CommentParameters commentParams = new CommentService.CommentParameters.CommentParametersBuilder()
.issue(issue).body(commentString).build();
CommentService.CommentCreateValidationResult commentResult = this.commentService.validateCommentCreate(user, commentParams);
return this.commentService.create(user, commentResult, true);
}
}So, I tried to change this code, using java.lang.Object instead of
class="com.atlassian.jira.web.action.issue.CreateIssueDetails"
in webwork and so on. But after filling the fields at http:/[jira]/secure/CreateIssue.jspa?pid=10000&issuetype=10000 and pressing Create, I am redirected to http:/[jira]/secure/CreateIssueDetails.jspa getting a code 404. I do not understand why it doesn't go to http:/[jira]/secure/browse/<issue_name>, but to http:/[jira]/secure/<alias>.jspa. Thanks for responses.
Hi,
I think the probem is in your XM plugin definition of your action
Try to see this link maybe it can give you some help
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.