Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Panel
borderColorwhite
bgColorwhite
borderwidth1

Converting to type as defined in WSDL

You may occasionally encounter problems mapping the correct data type of your programming language to the one defined in WSDL. If you are running into difficulties related to data mapping, we recommend that you consult the user guide or API documentation of the client library you are using, e.g. WSDL<->Java mapping, Python's SOAPpy, etc, for assistance.

Changing the authentication token timeout value

If you wish to change the timeout value of the authentication token (which is obtained once you've logged in), you will need to update the value for the
DEFAULT_TIMEOUT constant in the current com.atlassian.jira.rpc.auth.TokenManager implementation, i.e. com.atlassian.jira.rpc.auth.TokenManagerImpl.

Providing schemes to method's arguments

Users are often unsure whether they should construct or retrieve the scheme object(s) which will be passed to an argument. For your understanding, internally, the RPC plugin recognises just the id of the scheme, hence the name, type, description, etc. are usually insignificant.

Could not update an issue with a RemoteIssue object

Unfortunately, you can only create an issue with a RemoteIssue object. You cannot update an issue with a RemoteIssue object. The createIssue() method expects a RemoteIssue object as its argument, however the updateIssue() method expects an array of RemoteFieldValue objects (as per the WDSL).

Setting the value of cascading select customfield

Setting the value of a cascading select custom field can be complicated, as the create issue and update issue scenarios are different. Please refer to the points below for assistance in setting up your cascading select custom field correctly:

  • While creating an issue, the parent field is set by providing the customfieldId and values (single-element array with option's id) and the child field is set by providing the customfieldId, key (as 1) and values.
  • While updating an issue, the parent field is set by providing value (a single-element array with option's id) to the customfieldId and the child field is set by providing value to the customfieldId:key (key as 1, e.g. customfield_10000:1).

The same logic applies to XML-RPC, please refer to this example.

Could not invoke methods due to session invalidation

A known issue exists where methods may be prevented from being invoked due to session invalidation, i.e. an IllegalStateException occurs when trying to invoke the RPC methods:

No Format
java.lang.IllegalStateException: getAttribute: Session already invalidated
	at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
	at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
	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:424)
	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:2754)
	at org.apache.axis.client.Call.invoke(Call.java:2737)
	at org.apache.axis.client.Call.invoke(Call.java:2413)
	at org.apache.axis.client.Call.invoke(Call.java:2336)
	at org.apache.axis.client.Call.invoke(Call.java:1793)
	at com.atlassian.jira.rpc.soapclient.JirasoapserviceV2SoapBindingStub.getFieldsForAction(JirasoapserviceV2SoapBindingStub.java:3414)

Please refer to the bug report being tracked at JRA-8009. We would appreciate any comments added to this issue, if you encounter this problem.

Getting fixed targetNamespace

Getting a fixed targetNamespace is a known issue, which is being tracked at JRA-10849. The targetNamespace of the WSDL is defined by the first request to it.

Having concurrency problem with multiple issue update

Constantly or simultaneously updating an issue causes data inconsistency of the issue. This is a known issue which is currently being tracked at JRA-11382.

Could not invoke user-group methods due to deserialisation or invalid element problems

If you are using Python (SOAPpy) and encountering deserialisation or invalid element problems while invoking the addUserToGroup() method, e.g.

No Format
<Fault soapenv:Server.userException: org.xml.sax.SAXException: No deserializer defined for array type {http://soapinterop.org/xsd}SOAPStruct: 
<SOAPpy.Types.structType detail at 1085258540>: {'hostname': 'atlassian01.contegix.com', 'faultData': <SOAPpy.Types.structType faultData at 
1084456684>: {'exception': None, 'message': 'No deserializer defined for array type {http://soapinterop.org/xsd}SOAPStruct'}}>
Traceback (most recent call last):
File "./soapclient.py", line 58, in ?
soap.addUserToGroup(auth, group, user)
No Format
SOAPpy.Types.faultType: <Fault soapenv:Server.userException: org.xml.sax.SAXException: Invalid element in com.atlassian.jira.rpc.soap.beans.
RemoteGroup - email: <SOAPpy.Types.structType detail at 29991600>: {'hostname': 'bruwa116', 'faultData': <SOAPpy.Types.structType faultData
at 29991680>: {'exception': None, 'message': 'Invalid element in com.atlassian.jira.rpc.soap.beans.RemoteGroup - email'}}>

you should be able to resolve this by following the workarounds described in these issues — JRA-7920 and JRA-7971

Using the addActorsToProjectRole method

If you are having problems using the addActorsToProjectRole method, you may find the following advice helpful:
The JiraSoapService.addActorsToProjectRole() method internally invokes the ProjectRoleService.addActorsToProjectRole() method. You must provide either an array of users or groups based on the actorType value, i.e. UserRoleActor.TYPE or GroupRoleActor.TYPE.

For example,

Code Block
java
java
jiraSoapService.addActorsToProjectRole(token, new String[]{"admin", "foo", "bar"}, projectRole, project, UserRoleActor.TYPE);

Could not upload attachments to an issue due to OutOfMemoryError

If your Java (Axis) SOAP client is throwing an OutOfMemoryError while attaching files to an issue, Axis 1.3 may be the cause. This known issue has been commonly reported by users and is being tracked at JRA-11693.

Getting content-type complaint with .NET client

This seems to be the problem with the .NET web service library. We would appreciate your contributions to tracking issue, JRA-11515, if you encounter a similar problem.

Setting the reporter value upon issue creation

If you are not able to set the reporter value (to someone other than the current SOAP client) even though it is provided, you may be using the old RPC plugin (3.6.x and older). This improvement (JRA-8794) is delivered in the latest version (3.7.x onwards).

Other Known RPC Issues

Unfortunately there are a number of known RPC issues, which are currently unsupported. These have already been raised in our issue tracker and are listed below.

(info) If you would like to try manually patching or customising the RPC plugin to address these issues yourself, the source code of the RPC plugin is freely available for you to modify.

Section
Column
width1%

 

Column
width99%
Logging work to an issue

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-7260 with your comments and vote.

Updating user information

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-11252 with your comments and vote.

Deleting version

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-11532 with your comments and vote.

Creating subtask

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-6896 with your comments and vote.

Changing status and resolution of an issue

The only way to set the status and resolution of an issue is by invoking the progressWorkflowAction() method. Feel free contribute to the issue at JRA-10472 with your comments and vote.

Posting comment while progressing workflow

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-11278 with your comments and vote.

Setting comment "Viewable By" security

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-11278 with your comments and vote.

Getting required and available fields for issue creation

Unfortunately, this is not supported at the moment. Feel free contribute to the issue at JRA-11597 with your comments and vote.

...