grails - 使用RESTClient进行Grails和Jira集成

标签 grails jira

我正在使用groovy http-builder并使用RestClient从JIRA访问Web服务。
在开发模式下,它工作正常,但是当我在Tomcat服务器上部署war时,它将抛出异常

"org.apache.commons.collections.map.ListOrderedMap: method ()V not found. Stacktrace follows: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Executing action [list] of controller [com.tristar.JiraController] caused exception: Runtime error executing action at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Runtime error executing action ... 3 more Caused by: java.lang.reflect.InvocationTargetException ... 3 more Caused by: java.lang.NoSuchMethodError: org.apache.commons.collections.map.ListOrderedMap: method ()V not found at net.sf.json.JSONObject.(JSONObject.java:1603) at groovyx.net.http.EncoderRegistry.encodeJSON(EncoderRegistry.java:301) at groovyx.net.http.HTTPBuilder$RequestConfigDelegate.setBody(HTTPBuilder.java:1200) at groovyx.net.http.HTTPBuilder$RequestConfigDelegate.setPropertiesFromMap(HTTPBuilder.java:1111) at groovyx.net.http.HTTPBuilder$RequestConfigDelegate.(HTTPBuilder.java:946) at groovyx.net.http.RESTClient.post(RESTClient.java:140) at com.tristar.JiraController.list(JiraController.groovy:221) "

def jiraApiUrl = 'http://ipAddress:8080/rest/api/2/'
def jiraClient = new RESTClient(jiraApiUrl)

def searchResults = jiraClient.post(requestContentType: JSON,
          path: 'search',
          body: [jql: "project=XYZ AND (status=Open OR status='In Progress') AND issuetype!=Epic AND       issuetype!='Technical task'", startAt: offset, maxResults: params.max, fields: ['summary', 'description','issuetype']])


如何解决此问题?

最佳答案

我在构建配置中添加了这些依赖项

compile 'com.atlassian.jira:jira-rest-java-client-api:2.0.0-m25'
compile 'com.atlassian.jira:jira-rest-java-client-core:2.0.0-m25'

和使用
AsynchronousJiraRestClientFactory factory = new AsynchronousJiraRestClientFactory()
def jiraServerUri = URI.create("ipaddress")
JiraRestClient restClient = factory.createWithBasicHttpAuthentication(jiraServerUri, "username", "password")

进行身份验证并获取RestClient对象

关于grails - 使用RESTClient进行Grails和Jira集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24664498/

相关文章:

python - 带有身份验证的 requests.post 在 python 中为 jira rest api 提供错误 415

node.js - 如何通过 NodeJS REST 请求添加文件附件

java - 用于删除用户/参与者的 JIRA Rest API DELETE 调用不会删除用户

python - 让 PyDoc 进入 Jira Confluence 的任何方式

grails - 在Grails中自动使用外部配置文件

mongodb - Grails Audit插件不适用于MongoDB

grails - grails executeUpdate集成测试中的刷新错误

mysql - 如何将 mysql 表映射到 Grails 域类?

grails - 过滤器映射中无效的<url-pattern> *。在glassfish上部署grails 3应用程序期间

c# - 使用 Jira 创建问题