Creating a SOAP Client

All Versions

JIRA 4.0 Beta Documentation

JIRA 3.0 and above 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 (JIRA 3.1 or above required).

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.

Please note that the SOAP service respects the permissions and screen configurations that are set up in JIRA. For example, if you have configured JIRA so that the screen for a given issue type does not include a 'Summary' field, then you will not be permitted to set a value for the 'Summary' field through the SOAP request.

Some of our users have recommended SOAPUI (http://www.soapui.org/).
It allows you to import the WSDL from JIRA and it then displays all remote calls and all sorts of details and testing possibilities. Check it out!
Thanks goes to Karl-Koenig Koenigsson for this info.

Enable the RPC plugin

To 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:
!

If the plugin does not appear as above then your RPC jar has not been properly installed. Download the jar from the repository and copy it to the atlassian-jira/WEB-INF/lib folder of your JIRA installation. Perform a restart and your plugin should appear.

Your server should now be ready to accept remote procedure calls.

WSDL descriptor

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 WSDL file is:

http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl

In JIRA 3.0.x, the URL is http://your_installation/rpc/soap/jiraservice-v1.wsdl. The sample SOAP client below has this pre-packaged, so you don't need to do anything further if using it.

Sample Java SOAP client

Download the latest demo SOAP client distribution. This contains a Maven 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 source for our demonstration client, which creates issues on http://jira.atlassian.com/browse/TST

System.out.println("Creating a test issue on http://jira.atlassian.com ...");
JiraSoapServiceService jiraSoapServiceGetter = new
JiraSoapServiceServiceLocator();

JiraSoapService jiraSoapService = jiraSoapServiceGetter.getJirasoapserviceV2();

String token = jiraSoapService.login("soaptester", "soaptester");

// Create the issue
RemoteIssue issue = new RemoteIssue();
issue.setProject("TST");
issue.setType("1");
issue.setDuedate(Calendar.getInstance());

RemoteComponent component = new RemoteComponent();
component.setId("10242");

issue.setComponents(new RemoteComponent[]{component});
issue.setSummary("This is a new SOAP issue " + new Date());

// Make up some remote versions
RemoteVersion version = new RemoteVersion();
version.setId("10330");
RemoteVersion[] remoteVersions = new RemoteVersion[]{version};
issue.setFixVersions(remoteVersions);

RemoteIssue returnedIssue = jiraSoapService.createIssue(token, issue);
System.out.println("Successfully created issue http://jira.atlassian.com/browse/"+returnedIssue.getKey());

The various external classes (JiraSoapService etc) are the classes generated automatically from WSDL by the Maven Axis plugin.

Python (SOAPPy) client

Due to a JIRA/Axis bug, Python clients will not work with JIRA versions earlier than 3.3.1. In 3.3.1 and above, the following code demonstrates how to create an issue and comment (on http://jira.atlassian.com):

#!/usr/bin/python

# Sample Python client accessing JIRA via SOAP. By default, accesses
# http://jira.atlassian.com with a public account. Methods requiring
# more than basic user-level access are commented out. Change the URL
# and project/issue details for local testing.
#
# Note: This Python client only works with JIRA 3.3.1 and above (see
# http://jira.atlassian.com/browse/JRA-7321)
#
# Refer to the SOAP Javadoc to see what calls are available:
# http://docs.atlassian.com/software/jira/docs/api/rpc-jira-plugin/latest/com/atlassian/jira/rpc/soap/JiraSoapService.html

import SOAPpy, getpass, datetime

soap = SOAPpy.WSDL.Proxy('http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl')
#soap = SOAPpy.WSDL.Proxy('http://localhost:8090/jira/rpc/soap/jirasoapservice-v2?wsdl')

#jirauser = raw_input("Username for jira [fred]: ")
#if jirauser == "":
#    jirauser = "fred"
#
#passwd = getpass.getpass("Password for %s: " % jirauser)
#passwd="fredspassword"

jirauser='soaptester'
passwd='soaptester'

# This prints available methods, but the WSDL doesn't include argument
# names so its fairly useless. Refer to the Javadoc URL above instead
#print 'Available methods: ', soap.methods.keys()

def listSOAPmethods():
	for key in soap.methods.keys():
	    print key, ': '
	    for param in soap.methods[key].inparams:
		print '\t', param.name.ljust(10), param.type
	    for param in soap.methods[key].outparams:
		print '\tOut: ', param.name.ljust(10), param.type


auth = soap.login(jirauser, passwd)

issue = soap.getIssue(auth, 'TST-3410')
print "Retrieved issue:", issue
print

# Note: if anyone can get timestamps to work, please let us know how!

baseurl = soap.getServerInfo(auth)['baseUrl']
newissue = soap.createIssue(auth, {'project': 'TST', 'type': '1', 'summary': 'Issue created with Python!'})
print "Created %s/browse/%s" % (baseurl, newissue['key'])

print "Adding comment.."
soap.addComment(auth, newissue['key'], {'body': 'Comment added with SOAP'})

print 'Updating issue..'
soap.updateIssue(auth, newissue['key'], [
		{"id": "summary", "values": ['[Updated] Issue created with Python'] },

		# Change issue type to 'New feature'
		{"id":"issuetype", "values":'2'},

		# Setting a custom field. The id (10010) is discoverable from
		# the database or URLs in the admin section

		{"id": "customfield_10010", "values": ["Random text set in updateIssue method"] },

		{"id":"fixVersions", "values":['10331']},
		# Demonstrate setting a cascading selectlist:
		{"id": "customfield_10061", "values": ["10098"]},
		{"id": "customfield_10061_1", "values": ["10105"]},
		{"id": "duedate", "values": datetime.date.today().strftime("%d-%b-%y")}

		])

print 'Resolving issue..'
# Note: all fields prompted for in the transition (eg. assignee) need to
# be set, or they will become blank.
soap.progressWorkflowAction(auth, newissue['key'], '2', [
		{"id": "assignee", "values": "jefft" },
		{"id":"fixVersions", "values":['10331']},
		{"id": "resolution", "values": "2" }
		])


# Re. 'assignee' above, see http://jira.atlassian.com/browse/JRA-9018

# This works if you have the right permissions
#user = soap.createUser(auth, "testuser2", "testuser2", "SOAP-created user", "newuser@localhost")
#print "Created user ", user

#group = soap.getGroup(auth, "jira-developers")
# Adding a user to a group. Naming the parameters may be required (see
# http://jira.atlassian.com/browse/JRA-7971). You may experience other
# problems (see http://jira.atlassian.com/browse/JRA-7920).
#soap.addUserToGroup(token=auth, group=group, user=user)

# Adding a version to a project. If you figure out the syntax for the date please submit it back to Atlassian
#soap.addVersion(auth, "TST", {'name': 'Version 1'})


print "Done!"

# vim set textwidth=1000:
Python's SOAP support is considerably less well developed than Java's, and some SOAP calls may fail (eg. addUserToGroup()). If you have problems, please raise an issue with the Python snippet, and stacktrace.

Ruby client

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.

A gem for marginally simpler access to JIRA can be found at http://jira4r.rubyhaus.org/ (there is also a confluence gem at http://confluence4r.rubyhaus.org/

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).

There is a JIRA4R sample Ruby script available in the samples (thanks Jonathan Zhang). If you have any Ruby samples to share, please let us know so we can include them into the repository as well.

See also

Creating a XML-RPC Client

Labels

soap soap Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Aug 02, 2005

    Bill Schneider says:

    It's great that JIRA is opening up services for remote integration with other ap...

    It's great that JIRA is opening up services for remote integration with other apps. It makes it that much more useful of a tool.

    I wonder if there is any way we can do some kind of single sign-on where if a user is already logged into JIRA and the other app, you can grab their token for the existing JIRA session somehow? That would be better in some ways than having to prompt for (or store) a username/password.

    1. Jan 27

      Anonymous says:

      Hi Bill, Do you have solution found for this issue

      Hi Bill,

      Do you have solution found for this issue

      1. Jan 27

        sleiman rabah says:

        Hi, I don't know if that what you are looking for, but yes you can automate web...

        Hi,

        I don't know if that what you are looking for, but yes you can automate web application, I mean there are tools to automate web applications tests, for example you can automate butons clicks or even login to a website....

        Canoo Web test is a tool writen in Java and it is a great tool to do this kinf of job. There is another one if you want to use other language such as PHP, PERL .....

  2. Sep 19, 2005

    Chanan J Braunstein says:

    It doesn't look like the WSDL works in .Net. Any chance that the WSDL can be mad...

    It doesn't look like the WSDL works in .Net. Any chance that the WSDL can be made to work there too?

  3. Sep 19, 2005

    Mark Chaimungkalanont says:

    Chanan, The WSDL should work in .Net since JIRA 3.2.1 (see http://jira.atlassia...

    Chanan,

    The WSDL should work in .Net since JIRA 3.2.1 (see http://jira.atlassian.com/browse/JRA-6821). If you know of specific problems with .Net, could you please raise an issue at in http://jira.atlassian.com or raise it as a support request at http://support.atlassian.com

    Cheers,

    Mark C

    1. Sep 13, 2006

      Stefan Schmidt says:

      Interestingly the WSDL works with .NET v1.1 but doesn't seem to work with .NET v...

      Interestingly the WSDL works with .NET v1.1 but doesn't seem to work with .NET v2.0. After I generated the client stubs (with the wsdl.exe contained in the .NET framework) I do:

      JiraSoapServiceService jiraService;
      String token = jiraService.login(username.Text,password.Text);
      jiraService.logout(token);
      

      ... The following exception is thrown suggesting that the server is returning content type text/plain rather than text/xml. Does anyone have an idea how to fix this?

      Client found response content type of 'text/plain; charset=UTF-8', but expected 'text/xml'.
      The request failed with the error message:
      --
      <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:loginResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://soap.rpc.jira.atlassian.com"><loginReturn xsi:type="xsd:string">Htmt499a48</loginReturn></ns1:loginResponse></soapenv:Body></soapenv:Envelope>
      --.

      1. Sep 13, 2006

        Stefan Schmidt says:

        Reading this http://www.alotsoft.com/alotsoftweb/download/UserGuideCs.pdf sugges...

        Reading this http://www.alotsoft.com/alotsoftweb/download/UserGuideCs.pdf suggests that this could be caused by .NET not supporting 'MIME SOAP with Attachments'?!?!

  4. Sep 22, 2005

    Mike Doustan says:

    All, I am not fimiliar with Maven, and want to separate the Jira soap client fr...

    All,

    I am not fimiliar with Maven, and want to separate the Jira soap client from Maven. Ultimately I would like to get the soap client to work within Eclipse. Is that possible and if so how?

    Thanks,
    Mike

  5. Sep 22, 2005

    Anton Mazkovoi says:

    Mike, It is actually possible to generate Eclipse project files using Maven. Fo...

    Mike,

    It is actually possible to generate Eclipse project files using Maven. For more information please see: http://maven.apache.org/reference/plugins/eclipse/

    If you use the maven eclipse plugin and run:
    maven eclipse

    you should get an Eclipse project files generated for you.

    I am sure it is possible to manually go through the process of creating these files, but maven makes things much easier. I suggest looking into maven, as it is a powerful tool and one that you might find useful to add to your arsenal of developement tools.

    Anton

  6. Nov 07, 2005

    npeeters says:

    Great description. The SOAP interface works fine on my installation. One questio...

    Great description. The SOAP interface works fine on my installation. One question though: is it possible to use the SOAP interface to actually log in the users to the site (provided that you get their credentials from somewhere else...) so that they don't have to type in their password again? If not, is there anything else I could use to achieve this "single-sign on"?

    Nicolas

    1. Nov 08, 2005

      Jeff Turner says:

      See http://opensource.atlassian.com/seraph/sso.html
  7. Nov 28, 2005

    Dan Black says:

    I don't see JiraSoapServiceServiceLocator or getJirasoapserviceV2 anywhere in th...

    I don't see JiraSoapServiceServiceLocator or getJirasoapserviceV2 anywhere in the API documentation.  Am I missing something?  I am trying to duplicate the Java example code above in .NET.  Are these lines below setup steps specific to Java?

    I pulled the lines I am referring to from the begining of the Java example above:
    JiraSoapServiceService jiraSoapServiceGetter = new JiraSoapServiceServiceLocator();
    JiraSoapService jiraSoapService = jiraSoapServiceGetter.getJirasoapserviceV2();

    1. Nov 28, 2005

      Anton Mazkovoi says:

      Hi, We are not too familiar with .NET here. However I imagine there are SOAP to...

      Hi,

      We are not too familiar with .NET here. However I imagine there are SOAP tools in .NET that generate appropriate classes given the WSDL file. You will need to use the generated classes. The classes might be called something totally different to JiraSoapServiceServiceLocator().

      Another avenue to try is to contact JIRA users via the mailing list: http://www.atlassian.com/software/jira/mailinglist.jsp

      There should be JIRA users who have more idea about .NET.

      Thanks,
      Anton

  8. Dec 21, 2005

    Jason Kohls says:

    Having a bit of difficulty with PHP, specifically the getUser method: include('...

    Having a bit of difficulty with PHP, specifically the getUser method:

    include('lib/soaplib.php');
    
        $wsdl = "http://foo.bar:8080/rpc/soap/jirasoapservice-v2?wsdl";
    
        $client = new soapclient($wsdl, true);
    
        $credentials = array('username', 'password');
    
        $token = $client->call('login', $credentials);
    
        $credz = array('username', $token);
    
        $user = $client->call('getUser', $credz);
    

     

    $user returns the following fault string: "com.atlassian.jira.rpc.exception.RemoteAuthenticationException: User not authenticated yet, or session timed out."

    I'm assuming that this is the correct approach to returning a RemoteUser object; all I'm after here is the user's full name and email (getFullName() and getEmail() respectively) methods.

    The login method is indeed returning a token so obviously that user exists.

    thoughts?

    1. Feb 08, 2006

      Amrit Lalli says:

      This worked for me: req: php 5, and it was compiled with '--enable-soap', or so...

      This worked for me:

      req: php 5, and it was compiled with '--enable-soap', or something like that.   It doesnt come with soap by default, (I wasnt able to get PHP PEAR soap to work )

      for confluence: ---------------------------------------------------------------------

      try {
      &nbsp;&nbsp; $client = new SoapClient($wikiSoapUrl);
      
      &nbsp; $createCommentToken = $client->login($username,&nbsp; $password);
      
      $comment = array();
      $comment\[pageId\]=$pageid;
      $comment\[title\]=' ';//Not required
      
      // the space escaping and line breaks took a bit to figure out
      $comment\[content\]=preg_replace("/\r\n\|\n\|\r/", "\\\\\\\\ ", "comment message");
      $comment\[creator\]=' ';//Not required.&nbsp; The person who is logged in
      $comment\[id\]='0';// Not required.&nbsp; Confluence will assign the next avail id
      $comment\[created\]=' 2006-01-04T21:57:14.321Z';// i assume this isnt required... confluence will supply current date... i hope.
      $comment\[parentId\]='0';// Not required
      $comment\[url\]='';//Not required... confluence will figure this out.&nbsp; sample: 'http://wiki-test.test.com:10080/confluence/display/nullspace/asdf?focusedCommentId=16#comment-16';
      &nbsp;
      
      &nbsp;
      
      $commentAddResult = $client->addComment($createCommentToken, $comment);
      
      //if you print_r($commentAddResult) you should see the comment object
      
      &nbsp; $client->logout();
      
      }
      
      catch (Exception $e) {
      &nbsp;&nbsp;exit();
      }
      
      

       

       

       

       

       

       

       

      for jira --------- the comment object had to be a object rather than an array/hash as i used for the wiki

      /\* same as above except for these lines \*/&nbsp;
      
      $remoteComment->body="comment message";
      $remoteComment->id="0";
      $remoteComment->level=NULL;
      $remoteComment->timePerformed="2005-10-12T00:03:42.000Z";
      $remoteComment->username="mememe";
      
      $commentAddResult = $client->addComment($createCommentToken, $jiraInfo\[jiraIssueId\], $remoteComment);
      
      

      The 'just getting' commands are simpler.

      I think I had a similar error message when I was trying to get PEAR soap to work.

      1. Feb 08, 2006

        Amrit Lalli says:

        If what I typed doesnt work.  Its probably because I mucked up stripping ou...

        If what I typed doesnt work.  Its probably because I mucked up stripping out stuff to paste it here..  Also the ['s got escaped.   But it should work.

        :8080/rpc/soap-glue/confluenceservice-v1.wsdl - confluence

        8080/rpc/soap/jirasoapservice-v2?wsdl- jira

  9. Dec 21, 2005

    Mark Chaimungkalanont says:

    Jason, I'm not quite sure about PHP, but perhaps if you reverse the order of th...

    Jason,

    I'm not quite sure about PHP, but perhaps if you reverse the order of the credz = array('username', $token); so that the toeken is the first param, that might work?

    Cheers

    Mark C

  10. Feb 12, 2006

    Landon Bradshaw says:

    Here is an example that works with PHP 4.x by using the NuSOAP library ... ...

    Here is an example that works with PHP 4.x by using the NuSOAP library ...  I'm using a variation of this to post commit messages from my Subversion repository to JIRA ... (yes, I admit that I stole the basic structure from the NuSOAP sample scripts)

    <?php
    
    require_once('lib/nusoap.php');
    require_once('lib/class.wsdlcache.php');
    
    $cache = new wsdlcache('./cache', 60);
    $wsdl = $cache->get('http://localhost:8080/rpc/soap/jirasoapservice-v2?wsdl');
    
    if (is_null($wsdl)) {
        $wsdl = new wsdl('http://localhost:8080/rpc/soap/jirasoapservice-v2?wsdl');
        $cache->put($wsdl);
    }
    
    $client = new soapclient($wsdl, true);
    $err = $client->getError();
    if ($err) {
        echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
    }
    
    // Login to JIRA
    $credentials = array('username', 'password');
    $token = $client->call('login', $credentials);
    
    // Get the user information
    $userReq = array($token,'username');
    $result = $client->call('getUser', $userReq); 
    
    // Add a comment to a specific issue
    //$action = array($token, 'issueId', array('body'=>"Fear me for this is my comment\n"));
    //$issue = $client->call('addComment', $action);
    
    // Check for a fault
    if ($client->fault) {
        echo '<h2>Fault</h2><pre>';
        print_r($result);
        echo '</pre>';
    } else {
        // Check for errors
        $err = $client->getError();
        if ($err) {
            // Display the error
            echo '<h2>Error</h2><pre>' . $err . '</pre>';
            echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
        } else {
            // Display the result
            echo '<h2>Result</h2><pre>';
            print_r($result);
            echo '</pre>';
        }
    }
    
    ?>
    
    1. Nov 28, 2007

      Mike Cannon-Brookes says:

      Landon - is there a reason to use SOAP to do this instead of the Subversion plug...

      Landon - is there a reason to use SOAP to do this instead of the Subversion plugin?

  11. Feb 17, 2006

    Marcelo Riss says:

    Hi! I have checke in JIRA soap API and did not found a way to get or set th...

    Hi!

    I have checke in JIRA soap API and did not found a way to get or set the working time (in the same way as work logging in JIRA web interface) for a given issue. Is there any method for this? If not, what is the possible work arround? Would be to create another module for JIRA soap plugin?

    1. Feb 22, 2006

      Mark Chaimungkalanont says:

      Marcelo, What you're after isn't currently possible but you can download the RP...

      Marcelo,

      What you're after isn't currently possible but you can download the RPC plugin source to add any functionality to it. The source can be found at:

      http://repository.atlassian.com/atlassian-jira-rpc-plugin/distributions/

      If you're editing the default plugin, then make changes to the interface:

      com.atlassian.jira.rpc.soap.JiraSoapService

      You will then need to compile the jar with (maven jar) and then place the jar in the WEB-INF/lib folder of your JIRA installation. In the RPC code, you have full access to the internal JIRA API, so you can do just about anything.

      Drop us a line on jira-developer@lists.atlassian.com if you need more help on setting this up.

      Cheers

      Marl C

  12. Feb 22, 2006

    Amrit Lalli says:

    I am using php soap. I havent had any problems except for calling getProjects($...

    I am using php soap.

    I havent had any problems except for calling getProjects($token).  This just hangs.

    I can seem to get everything else, (components, versions, etc).  Also, getProjectsNoScheme($token) works as well.    But have their been any issues with getProjects?   Its not critical for me, since I am using getProjectsNoScheme,  But i might like to use getProjects in the future.

    1. Feb 23, 2006

      Nick Menere says:

      Amrit, The problem with getProjects() is that it retreives all teh associated sc...

      Amrit,
      The problem with getProjects() is that it retreives all teh associated schemes which can be a massive resulting object and will take a long, long time to return.
      Stick to using getProjectNoSchemes() and then get the schemes seperately if you still need them.

      Cheers,
      Nick

      1. Feb 24, 2006

        Amrit Lalli says:

        Ok Thanks for the information Nick.

        Ok Thanks for the information Nick.

  13. Feb 26, 2006

    Jeff Turner says:

     (reposting Amrit's comment without the long line which breaks formatting) ...

     (reposting Amrit's comment without the long line which breaks formatting)

    Has you or anyone else added an attachment to a wiki or jira page using php?

    Is this possible?

    The api for add attachment to a jira issue is this

    public boolean addAttachmentsToIssue(String token,
    String issueKey,
    String[] fileNames,
    byte[][] attachments)

    $key = 'RI-273';
    $filenames = array();
    $filenames0='blah.html';

    if my file was in /tmp/blah.html

    could someone provide code that would upload that file to my jira issue

    $blah = $client->addAttachmentsToIssue($token, $key, $filenames, $contents);

    Or is this not possible with php. (The byte[][] part), when i try, I get the following exception

    Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] Function (
    "addAttachmentsToIssue") is not a valid method for this service in /sites/confluence/confluencehtml/php/incommingMail/jira/pear_hello_client.php:79 Stack trace: #0
    /sites/confluence/confluencehtml/php/incommingMail/jira/pear_hello_client.php(79):
    SoapClient->__call('addAttachmentsT...', Array) #1
    /sites/confluence/confluencehtml/php/incommingMail/jira/pear_hello_client.php(79):
    SoapClient->addAttachmentsToIssue('J0wwM8PX24', 'RI-273', Array, Array) #2 {main} thrown in
    /sites/confluence/confluencehtml/php/incommingMail/jira/pear_hello_client.php on line 79
    

    Posted by Amrit Lalli at Feb 24, 2006 08:14 | Permalink | Remove | Reply To This

    1. Feb 27, 2006

      Amrit Lalli says:

      actually I just realized when using a java client, that the api for addAttachmen...

      actually I just realized when using a java client, that the api for addAttachmentToIssue changed (and didnt work before..) in jira3.5, So i need to upgrade.  that was why i guess i was getting the 'not a valid method' error.

      1. Feb 27, 2006

        Amrit Lalli says:

        if anyone knows how to solve the pass byte[][] from php for addAttachementsToIss...

        if anyone knows how to solve the pass byte[][] from php for addAttachementsToIssue, please reply to this issue.  Since i am still getting an illegal argument exception every way i try it.

        1. Feb 28, 2006

          Dylan Etkin says:

          Hi Amrit, Sorry to say there is not anyone around here too familiar with php. P...

          Hi Amrit,
          Sorry to say there is not anyone around here too familiar with php. Perhaps you might want to try the users list.
          Dylan

          1. Mar 06, 2006

            Amrit Lalli says:

            I got around that, by writing a java utility, that would take, issuekey, usernam...

            I got around that, by writing a java utility, that would take, issuekey, username, filename, path, and I would call that through java.  It worked.  

            But for some reason. Uploading file (using java), took too long to be useable. a 1.2 MB file took about 2 mins to transfer, (from one machine to another on the same lan).

            So am not bothering with attachments anymore.

            on another note. I noticed a) there is no way to create subtasks... (I have a work around for that). and Also.

            There is no way to add watchers to an issue through soap that i could see (on an individual basis – without adding them to a scheme, or group). Is this true as well? It seems like everything i need to do with soap is not yet implemented?

  14. Mar 07, 2006

    Dylan Etkin says:

    Hi Amrit, You are correct, there is not currently a way to manipulate watchers ...

    Hi Amrit,
    You are correct, there is not currently a way to manipulate watchers via SOAP. Our RPC plugin is certainly in a state of evolution and it is user needs that seem to drive its API to catch up with the web interface. There is an issue about this at, http://jira.atlassian.com/browse/JRA-8557 and it would seem that the reporter has started to implement the feature himself, perhaps he will share the code.
    Sorry I could not help more,
    Dylan

  15. May 02, 2006

    David Smiley says:

    I am trying to invoke addUserToGroup(). By looking at the WSDL, it appears that...

    I am trying to invoke addUserToGroup(). By looking at the WSDL, it appears that I need to pass on a fully specified user (i.e. name, email, fullname, etc.) and group (i.e. its name and the name of ALL its members). Why? Shouldn't simply specifying a username and a groupname be enough? Not only does it use unnecessary bandwidth (including two extra round-trips to get the group & user, in addition to sending unnecessary data) but it complicates client code.

    By the way, the javadocs didn't help any; there's no Atlassian added info to default javadoc generation.

    I couldn't use the XMLRPC client because it is not as complete as the SOAP one.

    1. May 04, 2006

      Jeff Turner says:

      The addUserToGroup() method wants a RemoteGroup and RemoteUser, which can be ob...

      The addUserToGroup() method wants a RemoteGroup and RemoteUser, which can be obtained easily enough:

      RemoteGroup group = jiraSoapService.getGroup(token, "jira-developers");
      RemoteUser user = jiraSoapService.getUser(token, "bob");
      jiraSoapService.addUserToGroup(token, group, user);
      
      1. May 05, 2006

        David Smiley says:

        I don't doubt that your code is brief; I am not complaining about bloating my co...

        I don't doubt that your code is brief; I am not complaining about bloating my code by two lines. I am complaining about the ramifications. Your code involves two more round-trips to the server than what I argue is necessary. Also, the payload to addUserToGroup is much more bulky because now it contains all the group members and the user metadata which isn't truly necessary for addUserToGroup to do its job. It also introduces the possibility of a race condition. If two remote clients execute that very code above at the same time but for different people, then it is possible that only one of them will be added to the group. I am asking you (Atlassian), why does addUserToGroup take a RemoteUser and a RemoteGroup instead of strings that refer to the name of each?

        1. May 11, 2006

          Nick Menere says:

          David, I have created a new improvement request to offer an alternative method t...

          David,
          I have created a new improvement request to offer an alternative method that only takes strings.

          Cheers,
          Nick

  16. May 11, 2006

    Richard Wallace says:

    Is there a way to get a list of issues for a particular project for the currentl...

    Is there a way to get a list of issues for a particular project for the currently logged in user using the SOAP apis? I see the getIssuesFromTextSearch() method, but it just looks for the search terms in all the fields of the ticket, doesn't it. It's basically the equivalent of the "Quick Search" from what I can tell. Or can you specify something like "reporter=$

    Unknown macro: {currentuser}

    " or something?

    The only alternative I can think of is to create a filter in JIRA and just call that rather than actually specify search options on the client side. Any ideas?

    Thanks,
    Rich

    1. May 11, 2006

      Richard Wallace says:

      Hmm... seems I broke something. Sorry. I'd fix it, but it seems you can't edit...

      Hmm... seems I broke something. Sorry. I'd fix it, but it seems you can't edit posts. I guess I should have used a code tag. What I was asking was if you could use something like

      [code]
      report=$

      Unknown macro: {currentUser}

      [/code]

      or something similar?

      1. May 12, 2006

        Nick Menere says:

        Rich, Confluence uses {noformat} to block out code. or there is a code macro as ...

        Rich,
        Confluence uses {noformat} to block out code. or there is a code macro as well.

        You should be able to pass in "my" to the text search and it will retreive all issues for the logged in user. You can also the specify the project key to narrow it to a project.

        Cheers,
        Nick

        1. May 12, 2006

          Richard Wallace says:

          Thanks for the reply.  I was afraid that since I screwed up the formatting ...

          Thanks for the reply.  I was afraid that since I screwed up the formatting so bady I wouldn't get any.  Sorry about that.  I'll just use the "Rich Text" formatting from now on to be safe

          Is there a place where any special strings like that are documented?

           Thanks again,
          Rich

          1. May 14, 2006

            Nick Menere says:

            Richard, For Confluence formating check out - http://extranet.atlassian.com/ren...

            Richard,

            For Confluence formating check out - http://extranet.atlassian.com/renderer/notationhelp.action

            For the quick search special words, check out - http://www.atlassian.com/software/jira/docs/latest/quicksearch.html

            Cheers,
            Nick

            1. May 15, 2006

              Richard Wallace says:

              Thanks again Nick. Just a few more questions if you don't mind. Is there anywa...

              Thanks again Nick.

              Just a few more questions if you don't mind.

              Is there anyway to get access to a projects issue type scheme using the SOAP APIs?  I'm writing a HelpDesk portlet to embed in our company portal and this would be really useful. Right now I'm going to have to statically define in the configuration of the portlet which issues to use even tho I have an issue scheme setup just for help desk issues.

              Another useful feature would be to be able to specify priority schemes for projects.  It's about the only thing that you can't customize on a per project basis and it would be tremendously useful for our planned usage. Otherwise, we wind up with "ASAP", "Next Couple of days", etc. as priorities on our software projects and "Bug", "Improvement", etc. as priorities in the help desk project.

              Should I submit these suggestions somewhere else?

              Thanks again for all the help,
              Rich

              1. May 16, 2006

                Nick Menere says:

                Sorry Rich. Issue type Scheme is unavailable at this time. Priorities and reso...

                Sorry Rich.

                Issue type Scheme is unavailable at this time.

                Priorities and resolutions are still not able to be configured on project by project basis. These are already logged as improvments on http://jira.atlassian.com.

                Developer related questions are best asked on our forums - http://forums.atlassian.com

                Cheers,
                Nick

  17. Jun 26, 2006

    Nathaniel Pryce says:

    I'm looking at the WSDL.  Where are the argument names?  Look at this:...

    I'm looking at the WSDL.  Where are the argument names?  Look at this:

    <wsdl:message name="createProjectRequest">
    <wsdl:part name="in0" type="xsd:string"/>
    <wsdl:part name="in1" type="xsd:string"/>
    <wsdl:part name="in2" type="xsd:string"/>
    <wsdl:part name="in3" type="xsd:string"/>
    <wsdl:part name="in4" type="xsd:string"/>
    <wsdl:part name="in5" type="xsd:string"/>
    <wsdl:part name="in6" type="tns1:RemotePermissionScheme"/>
    <wsdl:part name="in7" type="tns1:RemoteScheme"/>
    <wsdl:part name="in8" type="tns1:RemoteScheme"/>
    </wsdl:message>

    in0, in1, in2... WTF?!? How do I get descriptive parameter names? 

    1. Jun 29, 2006

      Dylan Etkin says:

      Hi Nathaniel, Looking at the WSDL is not the best way to see how our SOAP API w...

      Hi Nathaniel,
      Looking at the WSDL is not the best way to see how our SOAP API works, I would suggest using the javadocs which you can find here, http://www.atlassian.com/software/jira/docs/api/rpc-jira-plugin/latest/. You will want to look at the JiraSoapService javadoc.

      I hope this helps,
      Dylan

      1. Jul 03, 2006

        Nathaniel Pryce says:

        That's a cop-out. I build the Java binding from the WSDL, as suggested by the d...

        That's a cop-out. I build the Java binding from the WSDL, as suggested by the documentation, and then use the Java API in the IDE. The auto-complete is therefore completely worthless. It looks as if the WSDL is being generated from class files that have not been compiled with debug information. It's a bug in the build script that's trivial to fix.

        1. Jul 05, 2006

          Dylan Etkin says:

          Hi Nathaniel, We always compile all our source with debug information. What you...

          Hi Nathaniel,
          We always compile all our source with debug information. What you are refering to is very well summed up in one of the axis mailing list messages:

          The issue is that you need to have the java class files compiled with
          the debug option. That is where Java2WSDL gets the param names. But it
          has to be a class not an interface that gets compiled with the debug
          option.

          Note the last sentence, the problem is that we are exposing interfaces and not classes via SOAP. We have a few problems that we run into using Axis and we are planning on investigating other alternatives for SOAP/XMLRPC generation in the future.

  18. Jun 27, 2006

    Sikhar J Saikia says:

    Do we have any Sample SOAP client written in PERL? How different it will be from...

    Do we have any Sample SOAP client written in PERL? How different it will be from XML RPC Clients?

    1. Oct 10, 2006

      Yuen-Chi Lian says:

      Hello Sikhar, In terms of syntax, it doesn't look much different compared with ...

      Hello Sikhar,

      In terms of syntax, it doesn't look much different compared with XML-RPC, perhaps, a bit simpler (afterall, it's SIMPLE object access protocol).

      Let me know if this example helps you:

      #!/usr/bin/perl
      
      use SOAP::Lite;
      use Data::Dumper;
      
      my $soap = SOAP::Lite->proxy("http://localhost:8090/rpc/soap/jirasoapservice-v2?wsdl");
      my $auth = $soap->login("admin", "admin");
      
      # Update value of custom field
      
      my $updatedIssue = $soap->updateIssue($auth->result(), "MYC-2", [
      
        {"id" => SOAP::Data->type(string => "summary"), 
         "values" => [SOAP::Data->type(string => "myc foobar")]
        }, 
        {"id" => "customfield_10021",
         "values" => ["another"]
        }
      
      ]);
      
      
      # Get an issue to retrieve the custom field value
      my $issue = $soap->getIssue($auth->result(), "MYC-2");
      $cfValues = $issue->result()->{customFieldValues};
      
      foreach(@$cfValues){
        $cf = $_;
      
        if($cf->{customfieldId} eq "customfield_10021"){
          print "Custom field value for this is: \"".$cf->{values}[0]."\"";
        }
      }
      

      Cheers,
      Yuen-Chi

      1. Mar 25, 2008

        taylor steil says:

        Hi Yuen-Chi, Thanks a lot for the perl example, but I just wanted to add that i...

        Hi Yuen-Chi,

        Thanks a lot for the perl example, but I just wanted to add that in your example, if the password or username is all numbers, the SOAP call will break because it thinks it is an integer datatype. I found a resolution in this thread: http://jira.atlassian.com/browse/JRA-13078

        Here is my changed code:

        my $auth = $soap->login(
                SOAP::Data->type(string => "$user"),
                SOAP::Data->type(string => "$pass")
        );
        

        I also think it is worth noting that if anyone is having problems with the perl SOAP jira interface, it is helpful to include this snippet of code to print out any error or debug messages in the request:

         print join ', ',
                $auth->faultcode,
                $auth->faultstring;
        
        

        If I had known those things from the start it would have saved me a lot of time.

        Cheers,
        Taylor 

        1. May 04

          Gustavo Chaves says:

          Hi Yuen-Chi and Taylor, I used your ideas to implement a module to make the Perl...

          Hi Yuen-Chi and Taylor, I used your ideas to implement a module to make the Perl interface to JIRA a bit easier. It's released at CPAN as http://search.cpan.org/dist/JIRA-Client/.

          Hope you find it useful.

          Gustavo.

  19. Jul 03, 2006

    Nathaniel Pryce says:

    I'm not sure if this is a SOAP thing or a bug in Jira, but if I send a bad reque...

    I'm not sure if this is a SOAP thing or a bug in Jira, but if I send a bad request to the SOAP API the HTTP reply has the code 500 (internal server error) when it should be something in the 400's (client error).

    1. Jul 05, 2006

      Dylan Etkin says:

      Hi Nathaniel, Perhaps you could be a bit more specific, what exactly do you mea...

      Hi Nathaniel,
      Perhaps you could be a bit more specific, what exactly do you mean by "send a bad request"? This sounds reasonable, perhaps opening an Improvement request at http://jira.atlassian.com with the full details of the behavior would be the best action to take.

  20. Jul 15, 2006

    Yuen-Chi Lian says:

    If you are having troubles to upload files to JIRA via SOAP client written in ot...

    If you are having troubles to upload files to JIRA via SOAP client written in other languages (perl, python, php, etc.), please refer to the documentation of the toolkit you are using for details about converting a file to xsd_base64Binary.

    Here is a simple Python example which uses the SOAPpy's Types.base64BinaryType wrapper:

    #!/usr/bin/python
    
    import SOAPpy, array, base64
    from SOAPpy import Types
    
    soap = SOAPpy.WSDL.Proxy('http://localhost:8090/rpc/soap/jirasoapservice-v2?wsdl')
    jirauser='test'
    passwd='sphere'
    
    auth = soap.login(jirauser, passwd)
    
    filename = "test-attachment.exe"
    sarray = [filename]
    harray = array.array('h')
    
    print "Using: %s.." % filename
    
    try:
      try:
        f = open(filename, "rb")
    
        while True:
          harray.fromfile(f, 2048)
    
      except EOFError:
        print "<< EOF >>"
    
      except Exception, e:
        print "Exception: ", e
    finally:
      print "Massaging.."
    
    
    b64t = Types.base64BinaryType(harray.tostring())
    b64ts = [b64t]
    
    print "Contacting server.."
    soap.addAttachmentsToIssue(auth, 'QA-111', sarray, b64ts)
    
    print "Commited to JIRA!"
    
    1. May 11

      David Coultous says:

      Hi I am using this code, and it works for most attachments. However, when used ...

      Hi

      I am using this code, and it works for most attachments. However, when used on zip files the resultant zip file cannot be unzipped on our linux server as it appears to be missing the last character. (The same zip file can be unzipped successfully on Windows).

      Adding a null character to the end of the attached zip file appears to get around the problem but feels very hacky.

      Does anyone have a better understanding of what is going on here, so that a better "fix" can be made?

      Thanks

      David

  21. Jul 19, 2006

    Ugo Cei says:

    I don't see any method in the API to link issues or create subtasks. Is that sup...

    I don't see any method in the API to link issues or create subtasks. Is that supported?

    1. Jul 20, 2006

      Yuen-Chi Lian says:

      Hi Ugo, Yes, the current SOAP service does not support subtask creation. You wi...

      Hi Ugo,

      Yes, the current SOAP service does not support subtask creation. You will need to modify the source code in order to do that.

      The classes that you will need to look into are:

      • com.atlassian.jira.rpc.soap.beans.RemoteIssue (Add getter and setter)
      • com.atlassian.jira.rpc.soap.service.IssueServiceImpl

      Hope it helps,
      Yuen-Chi

      1. Sep 04, 2006

        Clemens Reimann says:

        Hello Yuen-Chi, is there any way using SOAP to link one issue to another? Rega...

        Hello Yuen-Chi,

        is there any way using SOAP to link one issue to another?

        Regards
        Clemens

        1. Sep 05, 2006

          Yuen-Chi Lian says:

          Hello Clemens, I'm sorry that it is currently not supported. You may consider e...

          Hello Clemens,

          I'm sorry that it is currently not supported. You may consider extending the plugin yourself or creating a feature request.

          Cheers,
          Yuen-Chi

  22. Jul 20, 2006

    Ugo Cei says:

    Yuen-Chi, any chances of having this in one of the next releases? Is there a JI...

    Yuen-Chi,

    any chances of having this in one of the next releases? Is there a JIRA issue for this?

    1. Jul 20, 2006

      Yuen-Chi Lian says:

      I have created a feature request at JRA-10656. Feel free to comment on it, cast ...

      I have created a feature request at JRA-10656. Feel free to comment on it, cast your vote, or watch it to be notified of further development.

      Cheers,
      Yuen-Chi

  23. Aug 17, 2006

    Yuen-Chi Lian says:

    FYI, RemoteVersion's sequence value is set like this, e.g. sequence = 2 from ...

    FYI,

    RemoteVersion's sequence value is set like this, e.g. sequence = 2

    from (in respect to the order as shown in the Manage Versions page):

    - Version 4 <- 4
    - Version 3 <- 3
    - Version 2 <- 2, new version goes here
    - Version 1 <- 1, 0, -1..
    

    to:

    - Version 4
    - Version 3
    - Version 3
    - Version 2
    - Version 1.1
    - Version 1
    

    Cheers,
    Yuen-Chi

  24. Aug 31, 2006

    Ugo Cei says:

    I have a question about the validity of tokens returned by the login method. I a...

    I have a question about the validity of tokens returned by the login method. I am storing the token indefinetely in order to avoid having to call login before every method call. However it seems that after some time the token is no longer valid and I have to login again.

    Is there a way to know if a token is still valid before calling a method?

    1. Sep 01, 2006

      Yuen-Chi Lian says:

      Hello Ugo, Unfortunately, this is not supported by JIRA at the moment. Perhaps ...

      Hello Ugo,

      Unfortunately, this is not supported by JIRA at the moment. Perhaps you can try modifying the DEFAULT_TIMEOUT constant of com.atlassian.jira.rpc.auth.TokenManagerImpl to prolong the session time or modify com.atlassian.jira.rpc.soap.JiraSoapServiceImpl to add new functions.

      There's currently a feature request with regards to this being tracked at JRA-11015, feel free to comment and vote on it.

      Cheers,
      Yuen-Chi

      1. Jun 25

        Anonymous says:

        Could you please give a code example (preferably Perl) as to how to modify the D...

        Could you please give a code example (preferably Perl) as to how to modify the DEFAULT_TIMEOUT constant once you have logged in and received the authentication token?  Thank you very much!

  25. Oct 25, 2006

    Benjill Cubas says:

    I'm using SOAP to update issues by reading a text file with the updated values.&...

    I'm using SOAP to update issues by reading a text file with the updated values.  I'm trying to replicate it to read values from an XML file provide with values used to either create or edit issue in JIRA.  I'm not XML expert so can you help me understand how to read this information into the SOAP client?

    1. Oct 26, 2006

      Yuen-Chi Lian says:

      Hello Benjill, May I know which programming language you are using? You can alw...

      Hello Benjill,

      May I know which programming language you are using? You can always google to find simple tutorials for XML parsing.

      If you are writing a Java client, you may try the dom4j library.

      Cheers,
      Yuen-Chi

  26. Nov 02, 2006

    Kartik says:

    Hi, I have written a small utility using Jira RPC service. I need to get the "O...

    Hi, I have written a small utility using Jira RPC service. I need to get the "Original Estimate" from my RemoteIssue. How do I do this? Thanks much. Regards, Kartik

    1. Dec 05, 2006

      Yuen-Chi Lian says:

      Hello Kartik, It doesn't seem like it's supported in the RemoteIssue object, I'...

      Hello Kartik,

      It doesn't seem like it's supported in the RemoteIssue object, I'm afraid that you'll need to modify its source code.

      Cheers,
      Yuen-Chi Lian

  27. Dec 12, 2006

    Chris says:

    Anyone has this problem?  $ $MAVEN_HOME/bin/maven plugin:download -Dmaven....

    Anyone has this problem? 

    $ $MAVEN_HOME/bin/maven plugin:download -Dmaven.repo.remote=http://repository.a
    tlassian.com,http://www.ibiblio.org/maven -DartifactId=maven-axis-plugin -Dgrou
    pId=atlassian -Dversion=0.7AXIS1.3
     __  __
    |  \/  |__ _Apache__ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    |_|  |_\__,_|\_/\___|_||_|  v. 1.0.2
    
    Attempting to download axis-1.3.jar.
    Error retrieving artifact from [http://www.ibiblio.org/maven/axis/jars/axis-1.3.
    jar]: java.io.IOException: Unknown error downloading; status code was: 301
    WARNING: Failed to download axis-1.3.jar.
    Attempting to download axis-jaxrpc-1.3.jar.
    Error retrieving artifact from [http://www.ibiblio.org/maven/axis/jars/axis-jaxr
    pc-1.3.jar]: java.io.IOException: Unknown error downloading; status code was: 30
    1
    
    1. Dec 12, 2006

      Yuen-Chi Lian says:

      Hello Chris, The Maven 1 repository has migrated to http://mirrors.ibiblio.org/...

      Hello Chris,

      The Maven 1 repository has migrated to http://mirrors.ibiblio.org/pub/mirrors/maven.

      For more information, please refer to this entry in our development blog: Maven 1 repository changes

      Cheers,
      Yuen-Chi Lian

  28. Dec 15, 2006

    Peter Brandström says:

    Hi there, It's great to have open APIs, but I need to change the issue type and...

    Hi there,

    It's great to have open APIs, but I need to change the issue type and I don't understand your way of thinking. I'm using Python and I first tried the XML-RPC API:

    >>> s.jira1.updateIssue(auth, jira_key, { 'type': '16'})
    Traceback (most recent call last):
      File "<pyshell#59>", line 1, in ?
        s.jira1.updateIssue(auth, jira_key, { 'type': '16'})
      File "C:\Program\Python22\lib\xmlrpclib.py", line 821, in __call__
        return self.__send(self.__name, args)
      File "C:\Program\Python22\lib\xmlrpclib.py", line 975, in __request
        verbose=self.__verbose
      File "C:\Program\Python22\lib\xmlrpclib.py", line 853, in request
        return self.parse_response(h.getfile())
      File "C:\Program\Python22\lib\xmlrpclib.py", line 896, in parse_response
        return u.close()
      File "C:\Program\Python22\lib\xmlrpclib.py", line 571, in close
        raise apply(Fault, (), self._stack[0])
    Fault: <Fault 0: 'java.lang.Exception: java.lang.ClassCastException'>
    

    Then I tried the SOAP api. Acording to your example I have the key is "issuetype":

    >>> soap.updateIssue(auth, 'GPLMSDP-9', [{'id': 'issuetype', 'values': '4'}])
    <SOAPpy.Types.structType multiRef at 20798992>: {'key': 'GPLMSDP-9',
     'priority': '2', 'attachmentNames': None, 'votes': 0L, 'updated': (2006, 12, 15, 16, 38, 
    44.0), 'description': None, 'project': 'GPLMSDP', 'created': (2006, 3, 24, 15, 44, 
    20.0), 'customFieldValues': [], 'type': '4', ... }
    

    Which works, but why does the result come back with a key "type"??? So now back to XML-RPC:

    >>> s.jira1.updateIssue(auth, jira_key, { 'issuetype': '16'})
    Traceback (most recent call last):
      File "<pyshell#51>", line 1, in ?
        s.jira1.updateIssue(auth, jira_key, { 'issuetype': '16'})
      File "C:\Program\Python22\lib\xmlrpclib.py", line 821, in __call__
        return self.__send(self.__name, args)
      File "C:\Program\Python22\lib\xmlrpclib.py", line 975, in __request
        verbose=self.__verbose
      File "C:\Program\Python22\lib\xmlrpclib.py", line 853, in request
        return self.parse_response(h.getfile())
      File "C:\Program\Python22\lib\xmlrpclib.py", line 896, in parse_response
        return u.close()
      File "C:\Program\Python22\lib\xmlrpclib.py", line 571, in close
        raise apply(Fault, (), self._stack[0])
    Fault: <Fault 0: 'java.lang.Exception: java.lang.ClassCastException'>
    

    So it still doesn't work!? Why? Let's try making it a list:

    >>> s.jira1.updateIssue(auth, jira_key, { 'issuetype': ['16']})
    

    And that works. Incidentally you can send in 'type' without getting any errors, but nothing changes. Very odd.

    Where can I find documentation on what the issue type fields are called, since what I get back obviously doesn't match what I need to send in? And whether I should send a list or a string or an integer because it varies a lot. It gets so difficult then...

    A lot of the other stuff works well, why this is so messed up I don't understand

    Cheers,
    Peter

    1. Dec 17, 2006

      Jeff Brooks says:

      Hi Peter- The JiraSoapService api can be found here: JiraSoapService api updat...

      Hi Peter-

      The JiraSoapService api can be found here: JiraSoapService api

      updateIssue() looks like:

      updateIssue(String token, String issueKey, RemoteFieldValue[] actionParams) 
      

      The RemoteFieldValue[] constructor is:

      RemoteFieldValue(String id, String[] values) 
      

      So, yes, it appears that your final solution matches the constructor.

      Hopefully this helps!
      Jeff

    2. Dec 18, 2006

      Yuen-Chi Lian says:

      Hi Peter, Let me know if this page addresses your problem: http://forums.atl...

      Hi Peter,

      Let me know if this page addresses your problem:

      To correctly define the field type and such, it's best to refer to the WSDL.

      Cheers,
      Yuen-Chi Lian

      1. Dec 18, 2006

        Peter Brandström says:

        Hello, I've used your APIs, both XML-RPC (preferred for simplicity) and SOAP an...

        Hello,

        I've used your APIs, both XML-RPC (preferred for simplicity) and SOAP and the part I don't understand is how I could possibly figure out that the key is 'issuetype'??

        The response contains the key 'type'. Afaict the WSDL also uses 'type', at least I cannot find the word "issuetype" in it. The JiraSoapService and ditto XmlRpc javadoc doesn't say anything about the field names. Incidentally the XmlRpc doc contains slightly more documentation than the SOAP one. Am I blind?

        The APIs are a terrific thing, they would be even better if the documentation was upped a bit!

        Cheers,
        Peter

        1. Dec 18, 2006

          Peter Brandström says:

          And to add to the confusion, 'type' is a perfectly valid key except nothing happ...

          And to add to the confusion, 'type' is a perfectly valid key except nothing happens when you try to modify it, you don't even get an error

          1. Dec 19, 2006

            Yuen-Chi Lian says:

            Hi Peter, Please use the getFieldsForEdit to retrieve the list of possible fiel...

            Hi Peter,

            Please use the getFieldsForEdit to retrieve the list of possible fields if you're updating via SOAP,

            e.g.

            fields = soap.getFieldsForEdit(auth, 'MYC-1')
            for field in fields:
             print field['name']+' = '+field['id']

            Result:

            $ python TestSOAP.py
            Summary = summary
            Issue Type = issuetype
            Priority = priority
            Due Date = duedate
            Component/s = components
            Affects Version/s = versions
            Environment = environment
            Description = description
            Time Tracking = timetracking
            Resolution = resolution
            Foobar = customfield_10000
            Foobar = customfield_10010
            Foobar CB = customfield_10020

            FYI, there will be a major rework on the Remote API in our future release. I can't guarantee when it'll be though.

            Regards,
            Yuen-Chi Lian

            1. Mar 22, 2007

              Yogesh Sinha says:

              Hi, I am trying to update the issue and I am trying to update its "Fix Version'...

              Hi,

              I am trying to update the issue and I am trying to update its "Fix Version's" field but this fields does not appear in when I callgetFieldsForEdit methods. Also somebody knows how to use the method releaseVersion. I am trying to release a version but its not happening.
               
              Yogesh   

  29. Dec 29, 2006

    Aman King says:

    Hi, does anyone know of a SOAP implementation/library for JavaScript? There's a...

    Hi, does anyone know of a SOAP implementation/library for JavaScript?

    There's a good one for XML-RPC: http://jsolait.net/wiki/documentation/xmlrpc

    But since JIRA's SOAP functionality is better than its XML-RPC, I'd like to be able to use it from JavaScript. I want web pages to directly talk to JIRA (AJAXy stuff) instead of having server-side Java, Ruby, etc.

    Thanks in advance.

    1. Jan 03, 2007

      Yuen-Chi Lian says:

      Have you tried the Mozilla SOAPCall()? Cheers, Yuen-Chi Lian

      Have you tried the Mozilla SOAPCall()?

      Cheers,
      Yuen-Chi Lian

  30. Jan 19, 2007

    Dinesh Vasudevan says:

    Hello guys , I am relatively new to Jira and I am currently trying to create a ...

    Hello guys ,

    I am relatively new to Jira and I am currently trying to create a application which accesses the JIRA methods via RPC. I started with XML RPC but I had to have an addattachment method called and found out to be absent in XML RPC. Then i thought of having the soap routines. But i dont know here top start from. Firstly i have the atlassian-jira-rpc-plugin-3.7.2-1.jar and the dependent jars in my swing application which is being developed in Eclipse. I went through the page in atlassian where creation of a soap client was depicted but could not find the class JiraSoapServiceService along with other classes in the jar file. Please advice me on how to go about creating a client from the jar files downloaded. I also wanted to know where the jira settings should be given like the url and stuff.

    Thank you ,

    Dinesh 

    1. Jan 19, 2007

      Dinesh Vasudevan says:

      As in the first example on this page, the first step for creating a SOAP client ...

      As in the first example on this page, the first step for creating a SOAP client is to get hold of com.atlassian.jira.rpc.soap.service.JiraSoapServiceServiceLocator. However, after downloading and including atlassian-jira-rpc-plugin-3.7.2-1.jar into my project, my Swing application still cannot find the location class. Is the above example outdated or do I need to include some more jira jars?

      Please advise soon.

      Thanks,
      Dinesh

      1. Jan 22, 2007

        Yuen-Chi Lian says:

        Hello Dinesh, Are you sure the JAR is correctly included in the classpath? Can ...

        Hello Dinesh,

        Are you sure the JAR is correctly included in the classpath? Can you also check the content of the JAR to make sure that you are specifying the packages and classes correctly?

        You may try asking your question in the mailing list, someone experienced may be able to help troubleshooting this:

        Cheers,
        Yuen-Chi Lian

        1. Jan 22, 2007

          Dinesh Vasudevan says:

          Thanks for the reply Yuen .. I solved my problem by creating a web service clien...

          Thanks for the reply Yuen .. I solved my problem by creating a web service client available from Eclipse. I gave the wsdl and it created the exact files as the jira client sample jar had. A single jar has been created and it works fine now.

          Thanks and regards,
          Dinesh 

        2. Jan 22, 2007

          Dinesh Vasudevan says:

          Hey Yuen .. I seem to be stuck with the createProject method in the soap API . I...

          Hey Yuen ..
          I seem to be stuck with the createProject method in the soap API . It gives me errors.
          I try to get the security, permission and notification schemes from the list of security, permission and notification schemes and then try to create my own projects as given in the method createProject().
          I get this error

          AxisFault
          faultCode:

          Unknown macro: {http}

          Server.userException
          faultSubcode:
          faultString: java.lang.reflect.InvocationTargetException
          faultActor:
          faultNode:
          faultDetail:
          {}faultData:<cause xmlns:ns2="http://lang.java" xsi:type="ns2:Throwable"><cause xsi:nil="true" xsi:type="ns2:Throwable"/><localizedMessage xsi:type="xsd:string">com.atlassian.jira.project.ProjectManager.refresh(Lorg/ofbiz/core/entity/GenericValue;)V</localizedMessage><message xsi:type="xsd:string">com.atlassian.jira.project.ProjectManager.refresh(Lorg/ofbiz/core/entity/GenericValue;)V</message><stackTrace soapenc:arrayType="ns2:StackTraceElement[53]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:Array"><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.rpc.soap.service.ProjectServiceImpl</className><fileName xsi:type="xsd:string">ProjectServiceImpl.java</fileName><lineNumber xsi:type="xsd:int">229</lineNumber><methodName xsi:type="xsd:string">createProject</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.rpc.soap.service.ProjectServiceImpl</className><fileName xsi:type="xsd:string">ProjectServiceImpl.java</fileName><lineNumber xsi:type="xsd:int">257</lineNumber><methodName xsi:type="xsd:string">createProject</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.rpc.soap.JiraSoapServiceImpl</className><fileName xsi:type="xsd:string">JiraSoapServiceImpl.java</fileName><lineNumber xsi:type="xsd:int">255</lineNumber><methodName xsi:type="xsd:string">createProject</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">sun.reflect.NativeMethodAccessorImpl</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-2</lineNumber><methodName xsi:type="xsd:string">invoke0</methodName><nativeMethod xsi:type="xsd:boolean">true</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">sun.reflect.NativeMethodAccessorImpl</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">sun.reflect.DelegatingMethodAccessorImpl</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">java.lang.reflect.Method</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.providers.java.RPCProvider</className><fileName xsi:type="xsd:string">RPCProvider.java</fileName><lineNumber xsi:type="xsd:int">397</lineNumber><methodName xsi:type="xsd:string">invokeMethod</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.providers.java.RPCProvider</className><fileName xsi:type="xsd:string">RPCProvider.java</fileName><lineNumber xsi:type="xsd:int">186</lineNumber><methodName xsi:type="xsd:string">processMessage</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.providers.java.JavaProvider</className><fileName xsi:type="xsd:string">JavaProvider.java</fileName><lineNumber xsi:type="xsd:int">323</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.strategies.InvocationStrategy</className><fileName xsi:type="xsd:string">InvocationStrategy.java</fileName><lineNumber xsi:type="xsd:int">32</lineNumber><methodName xsi:type="xsd:string">visit</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.SimpleChain</className><fileName xsi:type="xsd:string">SimpleChain.java</fileName><lineNumber xsi:type="xsd:int">118</lineNumber><methodName xsi:type="xsd:string">doVisiting</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.SimpleChain</className><fileName xsi:type="xsd:string">SimpleChain.java</fileName><lineNumber xsi:type="xsd:int">83</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.handlers.soap.SOAPService</className><fileName xsi:type="xsd:string">SOAPService.java</fileName><lineNumber xsi:type="xsd:int">453</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.server.AxisServer</className><fileName xsi:type="xsd:string">AxisServer.java</fileName><lineNumber xsi:type="xsd:int">281</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.transport.http.AxisServlet</className><fileName xsi:type="xsd:string">AxisServlet.java</fileName><lineNumber xsi:type="xsd:int">699</lineNumber><methodName xsi:type="xsd:string">doPost</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">javax.servlet.http.HttpServlet</className><fileName xsi:type="xsd:string">HttpServlet.java</fileName><lineNumber xsi:type="xsd:int">709</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.transport.http.AxisServletBase</className><fileName xsi:type="xsd:string">AxisServletBase.java</fileName><lineNumber xsi:type="xsd:int">327</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">javax.servlet.http.HttpServlet</className><fileName xsi:type="xsd:string">HttpServlet.java</fileName><lineNumber xsi:type="xsd:int">802</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.servlet.rpc.LazyAxisDecoratorServlet</className><fileName xsi:type="xsd:string">LazyAxisDecoratorServlet.java</fileName><lineNumber xsi:type="xsd:int">55</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">252</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.filters.AccessLogFilter</className><fileName xsi:type="xsd:string">AccessLogFilter.java</fileName><lineNumber xsi:type="xsd:int">51</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.seraph.filter.SecurityFilter</className><fileName xsi:type="xsd:string">SecurityFilter.java</fileName><lineNumber xsi:type="xsd:int">182</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.seraph.filter.LoginFilter</className><fileName xsi:type="xsd:string">LoginFilter.java</fileName><lineNumber xsi:type="xsd:int">177</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.util.profiling.filters.ProfilingFilter</className><fileName xsi:type="xsd:string">ProfilingFilter.java</fileName><lineNumber xsi:type="xsd:int">132</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.filters.ProfilingAndErrorFilter</className><fileName xsi:type="xsd:string">ProfilingAndErrorFilter.java</fileName><lineNumber xsi:type="xsd:int">35</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.filters.ActionCleanupDelayFilter</className><fileName xsi:type="xsd:string">ActionCleanupDelayFilter.java</fileName><lineNumber xsi:type="xsd:int">39</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.core.filters.AbstractEncodingFilter</className><fileName xsi:type="xsd:string">AbstractEncodingFilter.java</fileName><lineNumber xsi:type="xsd:int">37</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardWrapperValve</className><fileName xsi:type="xsd:string">StandardWrapperValve.java</fileName><lineNumber xsi:type="xsd:int">213</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardContextValve</className><fileName xsi:type="xsd:string">StandardContextValve.java</fileName><lineNumber xsi:type="xsd:int">178</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardHostValve</className><fileName xsi:type="xsd:string">StandardHostValve.java</fileName><lineNumber xsi:type="xsd:int">126</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.valves.ErrorReportValve</className><fileName xsi:type="xsd:string">ErrorReportValve.java</fileName><lineNumber xsi:type="xsd:int">105</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardEngineValve</className><fileName xsi:type="xsd:string">StandardEngineValve.java</fileName><lineNumber xsi:type="xsd:int">107</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.connector.CoyoteAdapter</className><fileName xsi:type="xsd:string">CoyoteAdapter.java</fileName><lineNumber xsi:type="xsd:int">148</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.coyote.http11.Http11Processor</className><fileName xsi:type="xsd:string">Http11Processor.java</fileName><lineNumber xsi:type="xsd:int">869</lineNumber><methodName xsi:type="xsd:string">process</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler</className><fileName xsi:type="xsd:string">Http11BaseProtocol.java</fileName><lineNumber xsi:type="xsd:int">664</lineNumber><methodName xsi:type="xsd:string">processConnection</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.tomcat.util.net.PoolTcpEndpoint</className><fileName xsi:type="xsd:string">PoolTcpEndpoint.java</fileName><lineNumber xsi:type="xsd:int">527</lineNumber><methodName xsi:type="xsd:string">processSocket</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.tomcat.util.net.LeaderFollowerWorkerThread</className><fileName xsi:type="xsd:string">LeaderFollowerWorkerThread.java</fileName><lineNumber xsi:type="xsd:int">80</lineNumber><methodName xsi:type="xsd:string">runIt</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">org.apache.tomcat.util.threads.ThreadPool$ControlRunnable</className><fileName xsi:type="xsd:string">ThreadPool.java</fileName><lineNumber xsi:type="xsd:int">684</lineNumber><methodName xsi:type="xsd:string">run</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns2:StackTraceElement"><className xsi:type="xsd:string">java.lang.Thread</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">run</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace></stackTrace></cause><targetException xmlns:ns3="http://lang.java" xsi:type="ns3:Throwable"><cause xsi:nil="true" xsi:type="ns3:Throwable"/><localizedMessage xsi:type="xsd:string">com.atlassian.jira.project.ProjectManager.refresh(Lorg/ofbiz/core/entity/GenericValue;)V</localizedMessage><message xsi:type="xsd:string">com.atlassian.jira.project.ProjectManager.refresh(Lorg/ofbiz/core/entity/GenericValue;)V</message><stackTrace soapenc:arrayType="ns3:StackTraceElement[53]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:Array"><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.rpc.soap.service.ProjectServiceImpl</className><fileName xsi:type="xsd:string">ProjectServiceImpl.java</fileName><lineNumber xsi:type="xsd:int">229</lineNumber><methodName xsi:type="xsd:string">createProject</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.rpc.soap.service.ProjectServiceImpl</className><fileName xsi:type="xsd:string">ProjectServiceImpl.java</fileName><lineNumber xsi:type="xsd:int">257</lineNumber><methodName xsi:type="xsd:string">createProject</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.rpc.soap.JiraSoapServiceImpl</className><fileName xsi:type="xsd:string">JiraSoapServiceImpl.java</fileName><lineNumber xsi:type="xsd:int">255</lineNumber><methodName xsi:type="xsd:string">createProject</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">sun.reflect.NativeMethodAccessorImpl</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-2</lineNumber><methodName xsi:type="xsd:string">invoke0</methodName><nativeMethod xsi:type="xsd:boolean">true</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">sun.reflect.NativeMethodAccessorImpl</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">sun.reflect.DelegatingMethodAccessorImpl</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">java.lang.reflect.Method</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.providers.java.RPCProvider</className><fileName xsi:type="xsd:string">RPCProvider.java</fileName><lineNumber xsi:type="xsd:int">397</lineNumber><methodName xsi:type="xsd:string">invokeMethod</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.providers.java.RPCProvider</className><fileName xsi:type="xsd:string">RPCProvider.java</fileName><lineNumber xsi:type="xsd:int">186</lineNumber><methodName xsi:type="xsd:string">processMessage</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.providers.java.JavaProvider</className><fileName xsi:type="xsd:string">JavaProvider.java</fileName><lineNumber xsi:type="xsd:int">323</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.strategies.InvocationStrategy</className><fileName xsi:type="xsd:string">InvocationStrategy.java</fileName><lineNumber xsi:type="xsd:int">32</lineNumber><methodName xsi:type="xsd:string">visit</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.SimpleChain</className><fileName xsi:type="xsd:string">SimpleChain.java</fileName><lineNumber xsi:type="xsd:int">118</lineNumber><methodName xsi:type="xsd:string">doVisiting</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.SimpleChain</className><fileName xsi:type="xsd:string">SimpleChain.java</fileName><lineNumber xsi:type="xsd:int">83</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.handlers.soap.SOAPService</className><fileName xsi:type="xsd:string">SOAPService.java</fileName><lineNumber xsi:type="xsd:int">453</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.server.AxisServer</className><fileName xsi:type="xsd:string">AxisServer.java</fileName><lineNumber xsi:type="xsd:int">281</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.transport.http.AxisServlet</className><fileName xsi:type="xsd:string">AxisServlet.java</fileName><lineNumber xsi:type="xsd:int">699</lineNumber><methodName xsi:type="xsd:string">doPost</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">javax.servlet.http.HttpServlet</className><fileName xsi:type="xsd:string">HttpServlet.java</fileName><lineNumber xsi:type="xsd:int">709</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.axis.transport.http.AxisServletBase</className><fileName xsi:type="xsd:string">AxisServletBase.java</fileName><lineNumber xsi:type="xsd:int">327</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">javax.servlet.http.HttpServlet</className><fileName xsi:type="xsd:string">HttpServlet.java</fileName><lineNumber xsi:type="xsd:int">802</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.servlet.rpc.LazyAxisDecoratorServlet</className><fileName xsi:type="xsd:string">LazyAxisDecoratorServlet.java</fileName><lineNumber xsi:type="xsd:int">55</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">252</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.filters.AccessLogFilter</className><fileName xsi:type="xsd:string">AccessLogFilter.java</fileName><lineNumber xsi:type="xsd:int">51</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.seraph.filter.SecurityFilter</className><fileName xsi:type="xsd:string">SecurityFilter.java</fileName><lineNumber xsi:type="xsd:int">182</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.seraph.filter.LoginFilter</className><fileName xsi:type="xsd:string">LoginFilter.java</fileName><lineNumber xsi:type="xsd:int">177</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.util.profiling.filters.ProfilingFilter</className><fileName xsi:type="xsd:string">ProfilingFilter.java</fileName><lineNumber xsi:type="xsd:int">132</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.filters.ProfilingAndErrorFilter</className><fileName xsi:type="xsd:string">ProfilingAndErrorFilter.java</fileName><lineNumber xsi:type="xsd:int">35</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.jira.web.filters.ActionCleanupDelayFilter</className><fileName xsi:type="xsd:string">ActionCleanupDelayFilter.java</fileName><lineNumber xsi:type="xsd:int">39</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">com.atlassian.core.filters.AbstractEncodingFilter</className><fileName xsi:type="xsd:string">AbstractEncodingFilter.java</fileName><lineNumber xsi:type="xsd:int">37</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">202</lineNumber><methodName xsi:type="xsd:string">internalDoFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.ApplicationFilterChain</className><fileName xsi:type="xsd:string">ApplicationFilterChain.java</fileName><lineNumber xsi:type="xsd:int">173</lineNumber><methodName xsi:type="xsd:string">doFilter</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardWrapperValve</className><fileName xsi:type="xsd:string">StandardWrapperValve.java</fileName><lineNumber xsi:type="xsd:int">213</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardContextValve</className><fileName xsi:type="xsd:string">StandardContextValve.java</fileName><lineNumber xsi:type="xsd:int">178</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardHostValve</className><fileName xsi:type="xsd:string">StandardHostValve.java</fileName><lineNumber xsi:type="xsd:int">126</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.valves.ErrorReportValve</className><fileName xsi:type="xsd:string">ErrorReportValve.java</fileName><lineNumber xsi:type="xsd:int">105</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.core.StandardEngineValve</className><fileName xsi:type="xsd:string">StandardEngineValve.java</fileName><lineNumber xsi:type="xsd:int">107</lineNumber><methodName xsi:type="xsd:string">invoke</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.catalina.connector.CoyoteAdapter</className><fileName xsi:type="xsd:string">CoyoteAdapter.java</fileName><lineNumber xsi:type="xsd:int">148</lineNumber><methodName xsi:type="xsd:string">service</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.coyote.http11.Http11Processor</className><fileName xsi:type="xsd:string">Http11Processor.java</fileName><lineNumber xsi:type="xsd:int">869</lineNumber><methodName xsi:type="xsd:string">process</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler</className><fileName xsi:type="xsd:string">Http11BaseProtocol.java</fileName><lineNumber xsi:type="xsd:int">664</lineNumber><methodName xsi:type="xsd:string">processConnection</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.tomcat.util.net.PoolTcpEndpoint</className><fileName xsi:type="xsd:string">PoolTcpEndpoint.java</fileName><lineNumber xsi:type="xsd:int">527</lineNumber><methodName xsi:type="xsd:string">processSocket</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.tomcat.util.net.LeaderFollowerWorkerThread</className><fileName xsi:type="xsd:string">LeaderFollowerWorkerThread.java</fileName><lineNumber xsi:type="xsd:int">80</lineNumber><methodName xsi:type="xsd:string">runIt</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">org.apache.tomcat.util.threads.ThreadPool$ControlRunnable</className><fileName xsi:type="xsd:string">ThreadPool.java</fileName><lineNumber xsi:type="xsd:int">684</lineNumber><methodName xsi:type="xsd:string">run</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace><stackTrace xsi:type="ns3:StackTraceElement"><className xsi:type="xsd:string">java.lang.Thread</className><fileName xsi:nil="true" xsi:type="xsd:string"/><lineNumber xsi:type="xsd:int">-1</lineNumber><methodName xsi:type="xsd:string">run</methodName><nativeMethod xsi:type="xsd:boolean">false</nativeMethod></stackTrace></stackTrace></targetException>

          Unknown macro: {http}

          hostname:dvasudevan

          java.lang.reflect.InvocationTargetException
          at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
          at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
          at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
          at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
          at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
          at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
          at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
          at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
          at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
          at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
          at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
          at javax.xml.parsers.SAXParser.parse(Unknown Source)
          at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
          at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
          at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
          at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
          at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
          at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
          at org.apache.axis.client.Call.invoke(Call.java:2767)
          at org.apache.axis.client.Call.invoke(Call.java:2443)
          at org.apache.axis.client.Call.invoke(Call.java:2366)
          at org.apache.axis.client.Call.invoke(Call.java:1812)
          at dvasudevan.jira.rpc.soap.jirasoapservice_v2.JirasoapserviceV2SoapBindingStub.createProject(JirasoapserviceV2SoapBindingStub.java:2991)
          at repository.RepositoryApplication.create_jira_project(RepositoryApplication.java:2238)
          at repository.RepositoryApplication$6.doInBackground(RepositoryApplication.java:2169)
          at javax.swing.SwingWorker$1.call(Unknown Source)
          at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
          at java.util.concurrent.FutureTask.run(Unknown Source)
          at javax.swing.SwingWorker.run(Unknown Source)
          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
          at java.lang.Thread.run(Unknown Source)

          Please advise me on the same ..
          Thanks and Regards,
          Dinesh

          1. Jan 23, 2007

            Dinesh Vasudevan says:

            Hey guys ..the project is visible only after i restart the apache tomcat server ...

            Hey guys ..the project is visible only after i restart the apache tomcat server .. Could anyone please help me with this issue ?

            Thanks and Regards
            Dinesh

            1. Jan 23, 2007

              Yuen-Chi Lian says:

              Hello Dinesh, May I know which version of JIRA you're using? It may be one of t...

              Hello Dinesh,

              May I know which version of JIRA you're using? It may be one of these reported problems: JRA-7016, JRA-9812, JRA-10438

              I'd advise you to create a support request on this instead and provide us more details. Alternatively, you can ask your question in the jira-developer mailing list, someone who has experienced this may be able to shed some light on your problem.

              Cheers,
              Yuen-Chi Lian

              1. Jan 24, 2007

                Dinesh Vasudevan says:

                Hi Yuen , I am using Atlassian JIRA™ the Professional Issue Tracker...

                Hi Yuen ,
                I am using Atlassian JIRA™ the Professional Issue Tracker. (Enterprise Edition, Version: 3.6.5)

                Thanks and Regards,
                Dinesh

              2. Jan 24, 2007

                Dinesh Vasudevan says:

                Hi Yuen , Could u also tell me how i could download an attachment from a ...

                Hi Yuen ,
                Could u also tell me how i could download an attachment from a particular issue ?? I would like to download all attachments from a particular issue and then check them in the application.

                Thanks and Regards,
                Dinesh

                1. Jan 24, 2007

                  Yuen-Chi Lian says:

                  There is an issue tracking something similar with this at JRA-11180. Cheers, Yu...

                  There is an issue tracking something similar with this at JRA-11180.

                  Cheers,
                  Yuen-Chi Lian

                  1. Jan 24, 2007

                    Dinesh Vasudevan says:

                    Hi Yuen, I tried using the getAttachments method but even if there are at...

                    Hi Yuen,
                    I tried using the getAttachments method but even if there are attachments in the issue, the method returns me null. I don't know why this happens. Please help with the various possibilities by which i could download this attachment using java.

                    Thanks and Regards,
                    Dinesh

  31. May 18, 2007

    Denis Popov says:

    Hello, I'm using python client, problem is API didnt support addComment with dif...

    Hello, I'm using python client, problem is API didnt support addComment with different assigner.

    Could you help me ?

  32. Jul 22, 2007

    kiran reddy says:

    Hi, I am trying the build/run the sample SOAP client . I get the foll...

    Hi,

    I am trying the build/run the sample SOAP client . I get the following errors.

    I have all along worked with ANT. ( not familiar with Maven much)

    Please let me know if I am missing something .

    I dont see the following classes JiraSoapServiceService, JiraSoapServiceServiceLocator,JiraSoapService.  Which .jar file has these classes?Here is the Maven log .......

    C:\kiran\jira-rpc-samples-3.6-1>maven
     __  __
    |  \/  |_ _Apache_ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    ||  |_,|_/__|||_|  v. 1.0

    plugin maven-pom-plugin-1.5.1 is cached (dynatag dep) but no longer present
    Cache invalidated due to out of date plugins
    Attempting to download dom4j-1.4-dev-8.jar.
    475K downloaded
    Attempting to download commons-jelly-20030902.160215.jar.
    150K downloaded
    Attempting to download commons-jelly-tags-jsl-20030211.143151.jar.
    14K downloaded
    Attempting to download commons-jelly-tags-log-20030211.142821.jar.
    8K downloaded
    Attempting to download commons-jelly-tags-velocity-20030303.205659.jar.
    7K downloaded
    Attempting to download commons-jelly-tags-xml-20040613.030723.jar.
    33K downloaded
    Attempting to download commons-logging-1.0.3.jar.
    30K downloaded
    Attempting to download velocity-1.4-dev.jar.
    505K downloaded
    Attempting to download xml-apis-1.0.b2.jar.
    106K downloaded
    Attempting to download isorelax-20030108.jar.
    188K downloaded
    Attempting to download jing-20030619.jar.
    475K downloaded
    Attempting to download xerces-2.4.0.jar.
    874K downloaded
    Attempting to download commons-io-20030203.000550.jar.
    59K downloaded
    Attempting to download commons-net-1.1.0.jar.
    139K downloaded
    Attempting to download commons-httpclient-2.0.jar.
    217K downloaded
    Attempting to download jsch-0.1.5.jar.
    79K downloaded
    Attempting to download junit-3.8.1.jar.
    118K downloaded
    Attempting to download commons-jelly-tags-antlr-20030211.143720.jar.
    7K downloaded
    Attempting to download antlr-2.7.2.jar.
    349K downloaded
    Plugin 'maven-deploy-plugin' in project 'Atlassian JIRA Sample SOAP client' is not available

    BUILD FAILED
    File...... C:\kiran\jira-rpc-samples-3.6-1\maven.xml
    Element... attainGoal
    Line...... 4
    Column.... 38
    No goal [axis:compile]
    Total time: 1 minutes 7 seconds
    Finished at: Sun Jul 22 08:33:06 EDT 2007

    C:\kiran\jira-rpc-samples-3.6-1>maven java:compile
     __  __
    |  \/  |_ _Apache_ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    ||  |_,|_/__|||_|  v. 1.0

    BUILD FAILED
    File...... C:\kiran\jira-rpc-samples-3.6-1\maven.xml
    Element... attainGoal
    Line...... 4
    Column.... 38
    No goal [axis:compile]
    Total time: 1 seconds
    Finished at: Sun Jul 22 08:59:38 EDT 2007

    C:\kiran\jira-rpc-samples-3.6-1>maven test
     __  __
    |  \/  |_ _Apache_ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    ||  |_,|_/__|||_|  v. 1.0

    BUILD FAILED
    File...... C:\kiran\jira-rpc-samples-3.6-1\maven.xml
    Element... attainGoal
    Line...... 4
    Column.... 38
    No goal [axis:compile]
    Total time: 1 seconds
    Finished at: Sun Jul 22 09:00:00 EDT 2007

    C:\kiran\jira-rpc-samples-3.6-1>maven build:end
     __  __
    |  \/  |_ _Apache_ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    ||  |_,|_/__|||_|  v. 1.0

    BUILD SUCCESSFUL
    Total time: 1 seconds
    Finished at: Sun Jul 22 09:02:32 EDT 2007

    C:\kiran\jira-rpc-samples-3.6-1>maven -u
     __  __
    |  \/  |_ _Apache_ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    ||  |_,|_/__|||_|  v. 1.0

    Project Goals
    =============

    Undocumented goals :

      fetch-wsdl
      release

    C:\kiran\jira-rpc-samples-3.6-1>maven java:compile
     __  __
    |  \/  |_ _Apache_ ___
    | |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
    ||  |_,|_/__|||_|  v. 1.0

    BUILD FAILED
    File...... C:\kiran\jira-rpc-samples-3.6-1\maven.xml
    Element... attainGoal
    Line...... 4
    Column.... 38
    No goal [axis:compile]
    Total time: 1 seconds
    Finished at: Sun Jul 22 09:03:32 EDT 2007

    C:\kiran\jira-rpc-samples-3.6-1>




    1. Aug 09, 2007

      Ross Rowe says:

      According to the README.txt file, you need to run the following first: maven pl...

      According to the README.txt file, you need to run the following first:

      maven plugin:download -Dmaven.repo.remote=http://repository.atlassian.com,http://www.ibiblio.org/maven -DartifactId=maven-axis-plugin -DgroupId=atlassian -Dversion=0.7AXIS1.3

  33. Aug 17, 2007

    Basilio Vera says:

    Is there any option or possible call to LOG WORK DONE? It's the most useful func...

    Is there any option or possible call to LOG WORK DONE? It's the most useful function for my system.

    I'm trying to integrate the RPC-Plugin with a Subversion pre-commit hook, and trough the comment log I'd like to input work done, for example:

    "JRA-1234 Fix all feature. [3h]"

    Using the RPC-Plugin I'd like to add 3 hours of work done to the task automatically. That's possible modifying the pre-commit hook script of the repository.

    Regards,

    Basi.

  34. Aug 17, 2007

    Mike Miller says:

    Note: This does not work at all in maven 2.x. Get a 1.x release here: http://arc...

    Note: This does not work at all in maven 2.x. Get a 1.x release here: http://archive.apache.org/dist/maven/binaries/

    The instructions should be updated to make it clear that it does not work at all in newer versions of maven.

  35. Aug 20, 2007

    Mike Miller says:

    Using the follwing code, I am attempting to run a filter and get a list of issue...

    Using the follwing code, I am attempting to run a filter and get a list of issue keys. Interestingly enough it does produce the correct list, however the only field on the RemoteIssue that is not populated is the issue key.

    Does anyone have a clue why this would happen?

        public String[] getIssueKeys(String user, String pass, String filter) 
            throws ServiceException, RemoteException, RemoteAuthenticationException, com.atlassian.jira.rpc.exception.RemoteException 
        {
            RemoteIssue[] issues;
            String[]      keys;
    
            JiraSoapService service = new JiraSoapServiceServiceLocator().getJirasoapserviceV2();        
            String token = service.login(user, pass);
    
            issues = service.getIssuesFromFilter(token, filter);
    
            if(issues != null && issues.length > 0) {
                keys = new String[issues.length];
    
                for(int x = 0; x < issues.length; x++) {
                    keys[x] = issues[x].getKey();
                    System.out.println(issues[x].getId() + ": " + issues[x].getKey());
                }
            } else {
                keys = null;
            }
    
            return keys;
        }
    
    1. Aug 20, 2007

      Mike Miller says:

      note: This is a problem with the java client. I ran this direclty and the xml do...

      note: This is a problem with the java client. I ran this direclty and the xml does contain every field, including the key.

      1. Aug 21, 2007

        Mike Miller says:

        I figured my problem out. You need to run with the latest version of the RPC plu...

        I figured my problem out. You need to run with the latest version of the RPC plugin, no matter what version of Jira you have. Plugin version 3.10.2 works just fine with Jira 3.7.2. This should probably be made more clear somewhere.

  36. Aug 21, 2007

    Anu V says:

    Hi,  I am new to JIRA and I tried using the sample SOAP-Client mentioned h...

    Hi,

     I am new to JIRA and I tried using the sample SOAP-Client mentioned here.

     My java project complies but when I execute this project from command line I get the below errors:

     Could someone please help me out here, its quite urgent.

    Thanks !
    D:\Dev\samplerpc-plugin\jira-rpc-samples-3.6-1>java -jar release/jira-rpc-sample
    s-3.6-1.jar
    Running test SOAP client...
    Exception in thread "main" AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     faultSubcode:
     faultString: java.net.UnknownHostException: jira.atlassian.com
     faultActor:
     faultNode:
     faultDetail:
            {http://xml.apache.org/axis/}stackTrace:java.net.UnknownHostException: j
    ira.atlassian.com
            at java.net.PlainSocketImpl.connect(Unknown Source)
            at java.net.SocksSocketImpl.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSoc
    ketFactory.java:153)
            at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSoc
    ketFactory.java:120)
            at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:1
    91)
            at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.ja
    va:404)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

            at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
    y.java:32)
            at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:2443)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at _soapclient.JirasoapserviceV2SoapBindingStub.login(JirasoapserviceV2S
    oapBindingStub.java:5432)
            at com.atlassian.jira_soapclient.SOAPClient.main(SOAPClient.java:29)

            {http://xml.apache.org/axis/}hostname:UK094784LT

    java.net.UnknownHostException: jira.atlassian.com
            at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)

            at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
    y.java:32)
            at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:2443)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at _soapclient.JirasoapserviceV2SoapBindingStub.login(JirasoapserviceV2S
    oapBindingStub.java:5432)
            at com.atlassian.jira_soapclient.SOAPClient.main(SOAPClient.java:29)
    Caused by: java.net.UnknownHostException: jira.atlassian.com
            at java.net.PlainSocketImpl.connect(Unknown Source)
            at java.net.SocksSocketImpl.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSoc
    ketFactory.java:153)
            at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSoc
    ketFactory.java:120)
            at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:1
    91)
            at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.ja
    va:404)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)

            ... 11 more

  37. Aug 26, 2007

    Darryl Lee says:

    Hi -- does that PHP example above really work with ver. 3.10? Specifica...

    Hi -- does that PHP example above really work with ver. 3.10?

    Specifically, I'm wondering about this snippet:

    baseurl = soap.getServerInfo(auth)['baseUrl']
    newissue = soap.createIssue(auth,{'project': 'TST', 'type': '1', 'summary': 'Issue created with Python!'})

    print "Created %s/browse/%s" % (baseurl, newissue['key'])

    In the Java sample, it appears that createIssue needs to have an object created by RemoteIssue. However the Python example leads me to believe that you can feed it a much simpler associative array (dictionary). I tried doing something similar in PHP and it's rejecting me.

  38. Oct 15, 2007

    Edward Wagner says:

    Bunch of beginner questions: Is there any chance there is an updated soap demo ...

    Bunch of beginner questions:

    Is there any chance there is an updated soap demo project?

    I saw a comment someplace before about a need to use Atlassian's custom Axis implementation.  But can we now use axis-1_4,  I do not remember the reason and lost the reference sorry.

    I want to get initial environment for Eclipse and roll with it.  So I'm trying to put a the needed pieces together.

    There is a really nice maven plugin for Eclipse but it is for maven 2.x.

    When I get the demo working is there any interest in posting it?

    1. Oct 16, 2007

      Patric Wender says:

      Edward, absolutely please do. PS I noticed a http://repository.atlassian.com/ji...

      Edward, absolutely please do.

      PS I noticed a http://repository.atlassian.com/jira-rpc-samples/poms/&nbsp;directory. Not sure but perhaps this got something to do with maven 2.x project object model.

      1. Oct 16, 2007

        Edward Wagner says:

        I have Eclipse project working against The Atlassian test jira instance and my o...

        I have Eclipse project working against The Atlassian test jira instance and my own test instance so for I can create test issues.

        If I get he project working with Maven 2 I will see if there is a place to post the POMs. However I think this is site config issue not a Maven version issue. I'm not much of a maven user yet though.

        I have another problem I'm heving trouble finding a resources about now though. For my jira project time tracking is required. But there does not seem to be a good way to set this field yest I've tried a few variations.
        String[] timetrack = new String[] {"1d","1h","0"}

        ;
        struct.put("timetracking", timetrack);
        //// and,
        // struct.put("originalestimate","10000");
        // struct.put("estimate","9000");
        // struct.put("spent","0");
        ////as well as witht he DB name for these fields (prefix with time)
        Any chance you know a place I can look for more information about setting timetracking

  39. Oct 19, 2007

    William Chever says:

    Hi All. Using 3.10 and trying to figure out how to set issue level security via...

    Hi All.

    Using 3.10 and trying to figure out how to set issue level security via a Java SOAP client.

    Is this valid?...issue.setSecurity("My Security Level");

    Thanks!

    Bill

  40. Oct 28, 2007

    Sandeep Jangity says:

    I don't understand what I am doing wrong. I have the soap client example version...

    I don't understand what I am doing wrong. I have the soap client example version 3.10.1-src working out of the box with my local JIRA installation. I need to integrate this soap client into my existing java application. I went through various forums on nabble/jira support and still can't figure this out.

    Why can't i just add the soap generated client jar from the example to my existing application and invoke methods in my existing application through my java application. I am not using Maven project structure otherwise I am sure I can figure this out.

    SOAPClient client = new SOAPClient();

    I don't know why that doesn't work. I get all sorts of NoClassDefError's. 

     - Yes, I've imported all the axis-required jar's into my java application. I've also included the jira-rpc plugin jar and the generated SOAP client-side jar. Can we only use JIRA SOAP plugin if we have a Maven project structure? I don't understand, can someone please clarify?

    Thanks,

    Sandeep 

    1. Nov 02, 2007

      Andy Brook says:

      Hi Sandeep, The problem is that there are a bunch of dependencies out of using ...

      Hi Sandeep,

      The problem is that there are a bunch of dependencies out of using soap, that you need to satisfy in order to use the soap code. Maven can simplify this. I have built a maven2 library for jira and confluences SOAP interfaces that could be 'depended' on by your project, requiring minimal coding on your part to get running. If you're getting ClassNotFound you dont have all depencies. If you have already grabbed the necessary dependencies there may also be a versioning problem with some of the jars.

      You don't need Maven, but it means that once someone else has figured out the dependencies (and versions!) you don't have to.

      I'm not sure why there isn't an Atlasian provided jar that has done this yet, Im going to add one to the developer maven2 repo over the weekend in any case as its a faff to build in the first place. This should help people who just want to 'get going'. To illustrate, once you've got such a library, you only need coding like this:

      JiraSoapServiceServiceLocator fJiraSoapServiceGetter=new JiraSoapServiceServiceLocator(); 
      fJiraSoapServiceGetter.setJirasoapserviceV2EndpointAddress(JIRA_SERVER_URL+"/rpc/soap/jirasoapservice-v2");
      fJiraSoapServiceGetter.setMaintainSession(true);
      fJiraSoapService = fJiraSoapServiceGetter.getJirasoapserviceV2();       
      String token = fJiraSoapService.login(LOGIN_USER, LOGIN_PASS);
      RemoteUser u =fJiraSoapService.getUser(token,userID);
      ... 
      
      1. Nov 06, 2007

        Patric Wender says:

        Hi Andy, Did you manage to create it already. I would be happy to use it.

        Hi Andy,

        Did you manage to create it already. I would be happy to use it.

        1. Nov 09, 2007

          Travis J. Winkler says:

          Hey Andy - I second Patric's motion. I have a very small app I'm looking to thr...

          Hey Andy -

          I second Patric's motion. I have a very small app I'm looking to throw together and Maven and building the libs are way more than I want to bite off right now.

          Thanks,

          Travis

          1. Nov 19, 2007

            Andy Brook says:

            OK, I meant to do this a while back, Ive now created a page that will hopefully ...

            OK, I meant to do this a while back, Ive now created a page that will hopefully be enough for maven2 savvy people to use. You my need to hunt around for the dependency jars due to licensing (SUN mail/activation etc), Ive put a dependency graph on the page for info.

            Well, for what its worth I also added one for Confluence, here

  41. Nov 27, 2007

    Joshua Clayton says:

    Hi all, I'm in the process of making a nice little wrapper for some SOAP calls....

    Hi all,

    I'm in the process of making a nice little wrapper for some SOAP calls. No (huge) issues so far. However, I was wondering how I'd be able to pull down attachments and display them?

    Currently, I am generating the URL based on attachment info and pointing to the respective JIRA URL. This works fine when I'm logged into the JIRA server within that browser; however, if I'm not logged in, the file does not display. This makes sense, as you should have to be logged in to view the attachments to an issue. Following the link results in an unfriendly error message at (/secure/views/securitybreach.jsp):

    ###
    ACCESS DENIED

    It seems that you have tried to perform an operation which you are not permitted to perform.

    If you think this message is wrong, please consult your administrators about getting the necessary permissions.
    ###

    All of this makes sense to me; I'm requesting a URL that isn't kicking back an image or file but an 'Access Denied' error when not logged in to JIRA. This is a good thing in that security is working. However, in my wrapper, I now cannot guarantee that I will be able to view attached files unless I'm logged in to JIRA AND logged into my wrapper (needs auth token for all the requests).

    Are there any suggestions out there as to how I'd be able to do this, if there is a way?

    Thanks in advance!

    1. Nov 28, 2007

      Joshua Clayton says:

      Nevermind; found what I was looking for!

      Nevermind; found what I was looking for!

      1. Mar 27

        Anonymous says:

        What is it that you were looking for?

        What is it that you were looking for?

  42. Mar 05, 2008

    George Cowsar says:

    The link at the top of this document that should lead to the Jira Soap API docum...

    The link at the top of this document that should lead to the Jira Soap API documentation is broken:

    http://www.atlassian.com/software/jira/docs/api/rpc-jira-plugin/latest/com/atlassian/jira/rpc/soap/JiraSoapService.html

    1. Mar 05, 2008

      Andrew Lui [Atlassian Technical Writer] says:

      Link has been fixed. Thanks for the heads up. Cheers, Andrew

      Link has been fixed. Thanks for the heads up.

      Cheers,
      Andrew

  43. Mar 26, 2008

    Igor V Demin says:

    Tell me please where I can get jar with these classes: JiraSoapServiceService, J...

    Tell me please where I can get jar with these classes: JiraSoapServiceService, JiraSoapServiceServiceLocator;

    There is same question above and no clear answer!!!

    It is in example, but I can't use this api without jar or source.

    1. Mar 27, 2008

      dinesh vasudevan says:

      Hi, I fyou are using Eclipse, use the Web Tools to make a client out of the wsd...

      Hi,

      I fyou are using Eclipse, use the Web Tools to make a client out of the wsdl. This Used Wsdl2java , accepts the wsdl and creates the corresponding Java files. You could then bundle this as a jar and then use it for your individual applications.

      http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/WebServiceClient/WebServiceClient.html

      http://dev2dev.bea.com/pub/a/2005/09/eclipse_web_tools_platform.html\\

      Thanks and Regards,

      Dinesh

      1. Mar 27, 2008

        Igor V Demin says:

        Thanks, but what if I don't use Eclipse? I'm still want to get jar with these cl...

        Thanks, but what if I don't use Eclipse? I'm still want to get jar with these classes, probably someone can make it public and give me a link? Big thanks for your help, then.

        1. Mar 28, 2008

          dinesh vasudevan says:

          Use wsdl2java ( that this eclipse plugin indirectly uses ) available from Apache...

          Use wsdl2java ( that this eclipse plugin indirectly uses ) available from Apache Axis.

          http://ws.apache.org/axis/java/user-guide.html

          Thanks and Regards,

          Dinesh

  44. Mar 27, 2008

    taylor steil says:

    I just wanted to provide a working php5 (I'm using Ubuntu) example since the oth...

    I just wanted to provide a working php5 (I'm using Ubuntu) example since the other php examples on this page are for php4.

    <?php
    $wsdl = "http://localhost:8080/rpc/soap/jirasoapservice-v2?wsdl";
    $login = "*****";
    $password = "*****";
    $filterID = "10001";
    $client = new soapclient($wsdl);
    $login = $client->login($login, $password);
    echo "$login<br>";
    
    $issues = $client->getIssuesFromFilter($login, $filterID); print_r($issues);
    
    ?>
    

    And these are the pear modules I have installed:

     taylor@ubuntu:/var/www# pear list
    Installed packages, channel pear.php.net:
    =========================================
    Package          Version State
    Archive_Tar      1.3.2   stable
    Auth_SASL        1.0.2   stable
    Console_Getopt   1.2.2   stable
    HTTP_Request     1.4.2   stable
    Mail             1.1.14  stable
    Net_SMTP         1.2.11  stable
    Net_Socket       1.0.8   stable
    Net_URL          1.0.15  stable
    PEAR             1.5.4   stable
    SOAP             0.11.0  beta
    Structures_Graph 1.0.2   stable
    

    Thanks
    -taylor

    1. Aug 14, 2008

      sleiman rabah says:

      Hi, Thanks for your example, I'm running Ubuntu and PHP5 configured with soap. ...

      Hi,

      Thanks for your example, I'm running Ubuntu and PHP5 configured with soap. but when i execute this command: pear list

      I get this out put:

      Installed packages, channel pear.php.net:
      =========================================
      Package          Version State
      Archive_Tar      1.3.2   stable
      Console_Getopt   1.2.3   stable
      PEAR             1.6.1   stable
      Structures_Graph 1.0.2   stable

      But  I don't see SOAP there, how did you configure SOAP and PEAR?

      Thanks.

  45. Apr 17, 2008

    bbabeshkin says:

    The above works.

    The above works.

  46. Jun 02, 2008

    Ali Ibrahim says:

    Is there an updated api anywhere?  The example code I'm looking at does stu...

    Is there an updated api anywhere?  The example code I'm looking at does stuff that shouldn't be possible according to the api linked off this page...like creating an instance of JiraSoapService even though it is an interface.  Also, there's no description of JiraSoapServiceServiceLocator.

  47. Jun 24, 2008

    Brian Williams says:

    I would also like to find updated API documentation.  In the createIssue() ...

    I would also like to find updated API documentation.  In the createIssue() method, for example, I would like to know which fields are required and which are optional.

  48. Jun 25, 2008

    Wojciech Owczarek says:

    Guys, What about a setup where security level is required? I'm using Jira 3.12....

    Guys,

    What about a setup where security level is required? I'm using Jira 3.12.2. First of all, there are no methods provided in the SOAP API to get a list of security levels in a given security scheme, then - the "security" property of a RemoteIssue is not even defined in the wsdl definition. So - even if I add a key/value: 'security' => [level_ID] to the issue variable passed to createIssue, I still get:

    com.atlassian.jira.rpc.exception.RemoteValidationException: {security=Security Level is required.}
    

    I checked the WSDL definition on your web page and it still does not contain any references to security levels. This currently a major showstopper for me. I am using PHP to create a bridge between customer's issue management system and JIRA.

    Any ideas?

  49. Jul 01, 2008

    Kyle Smith says:

    I thought I'd share some code for those of you trying to call addUserToGroup and...

    I thought I'd share some code for those of you trying to call addUserToGroup and removeUserFromGroup using SOAPpy (tested with SOAPpy 0.11.3 and Jira 3.12.3)

    class JiraS