JIRA ships with the RPC plugin which enables remote access through XML-RPC and SOAP. This document contains notes on how to perform various operations (e.g. creating issues) via a Java SOAP client.
Remotely exposed operations.
Before you begin, check out the javadoc for the RPC plugin, specifically JiraSoapService, which has information on all the methods available through SOAP and and XML-RPC. Also check the list of RPC bugs, listed on the RPC plugin page, to see that none will affect you.
Enable the RPC pluginTo invoke JIRA operations remotely, you should ensure that the RPC plugin is enabled on the JIRA installation you are targeting. If you simply want to create a client to http://jira.atlassian.com/ then you can skip this step. First you need to check if the Accept Remote API Calls has been enabled in 'General Configuration' under 'Global Settings' in the left-hand menu:
Then you need to enable the JIRA RPC Plugin in 'Plugins' under 'System' in the left-hand menu:
Your server should now be ready to accept remote procedure calls.
Regardless of the language or SOAP API used, you will need the WSDL descriptor for your JIRA installation. This is found at http://
your_installation/rpc/soap/jirasoapservice-v2?wsdl. For instance, http://jira.atlassian.com's (http://jira.atlassian.com's) WSDL file is:
Sample Java SOAP client
Check out the latest demo SOAP client distribution from the Atlassian public repository. This contains a Maven 2 project configured to use Apache Axis, and a sample Java SOAP client which creates test issues in http://jira.atlassian.com.
Read the README.txt in the root directory for further instructions.
To give you an idea of what a Java SOAP client looks like, here is the sample client's code for creating issues:
The various external classes (JiraSoapService etc) are the classes generated automatically from WSDL by the Maven Axis plugin.
Python (SOAPPy) client
The following code demonstrates how to create an issue and comment (on http://jira.atlassian.com) using python:
Ben Walding (Codehaus) reports:
I've worked with the developers of SOAP4R and they've made the Ruby SOAP libraries work with JIRA. It was the client libraries at fault - they were ignoring the WSDL and sending integers instead of longs.
The gems take care of authentication and provide helper methods where the Jira / Confluence interfaces are missing useful methods or behave strangely (eg. provides a getProject; provides a getGroup that doesn't throw exceptions).