JIRA小工具REST模块不会给予回报

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JIRA小工具REST模块不会给予回报相关的知识,希望对你有一定的参考价值。

我正在尝试开发一个Atlassian JIRA小工具,它将使用REST模块从.java文件中获取值。为了解决这个问题,我阅读了JIRA文档(适用于RESTgadgets等等)并参考了示例。所以我得到了i.a.以下代码:

D d t。 XML:。 。 。

   <Content type="html" view="profile">
   <![CDATA[
#requireResource("com.atlassian.jira.gadgets:common")
#includeResources()

<script type="text/javascript">
    (function () {
        var gadget = AJS.Gadget({
            baseUrl: "__ATLASSIAN_BASE_URL__",
            useOauth: "/rest/gadget/1.0/currentUser",
            view: {
                   template: function(args) {
          var gadget = this;       
          var userDetails = AJS.$("<h1/>").text("Hello, "+args.fred.firstName);       
          gadget.getView().html(userDetails);
            },
                  args: [{
                        key: "fred",
                        ajaxOptions: function() {
                            return {
                                url: "/rest/My_Dashboard/1.0/users"
                            };
                        }
                    }]
            }
        });
    })();
</script>
]]>

rest HelloWorld service.Java:

package com.atlassian.jira.plugin.tutorial;

import com.atlassian.jira.plugin.tutorial.*;
import javax.ws.rs.*;
import javax.ws.rs.core.*;

@Path("/")
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public class RestHelloWorldService { 
    @GET
    @Path("users")
    public Response getUncompletedUsers() {
        return Response.ok(new User("Fred","Bloggs")).build();
    }
}

而User.java:

package com.atlassian.jira.plugin.tutorial;

import com.atlassian.jira.plugin.tutorial.*;
import javax.xml.bind.annotation.*;


@XmlRootElement
public class User
{
    @XmlElement
    private String firstName;

    @XmlElement
    private String lastName;

    // This private constructor isn't used by any code, but JAXB requires any
    // representation class to have a no-args constructor.
    private User() { }

    public User(String firstName, String lastName)
    {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

建立成功!

但我的小工具仍然没有显示。数据位于URL位置:

<user>
<firstName>Fred</firstName>
<lastName>Bloggs</lastName>
</user>

可能有什么不对?我没有想法......

答案

发现问题了!

我必须在gadget.xml中添加两行来将contentType和dataType设置为JSON:

...args: [{
         key: "fred",
         ajaxOptions: function() {
                            return {
                                url: "/rest/My_Dashboard/1.0/users", 
                                contentType: "application/json",
                                dataType: "json",
                            };
                        }
                    }]

无论如何,谢谢你的回答!

以上是关于JIRA小工具REST模块不会给予回报的主要内容,如果未能解决你的问题,请参考以下文章

如何在正常的 DLL 中找到“奇怪的”ROP 小工具?编译器永远不会这样做。 (面向回报的编程)

jira小工具与邮件发送

自动在 JIRA Adaptavist 工具中发布测试结果,来自 Eclipse 上运行的 rest api 测试用例

Python Jira Rest Api 代码生成无效字符串

通过 REST 创建 Jira 用户会导致 401 - 此资源需要 WebSudo

如何使用 java rest api 在 jira 中创建问题