Best approach to build a Jira web service client

I need help setting up a Jira web service client and I’m running into several issues. I started by trying the SOAP client approach but ran into problems with missing dependencies from the jira-rpc-plugin. Since I need to make calls from a remote server, I tried to find the JAR file for this plugin but the download links appear to be broken.

Next, I attempted to compile the plugin from source code. However, when I imported the Maven project into my IDE, it showed multiple build errors and claimed the project structure was invalid. I’d prefer not to configure Maven manually if possible.

Finally, I tried creating a web service client directly from the WSDL file using JAX-WS generation tools. This approach failed with an error about “undefined simple or complex type soapenc:Array”. It seems like I might need to use the older JAX-RPC approach instead.

What’s the most straightforward way to create a working Jira client? Any suggestions would be appreciated.

Had this exact issue a few months ago. I ditched the WSDL generation completely and went with Jersey client + manual XML parsing instead of generated stubs. Just craft the SOAP requests by hand - turn on debug logging in any working Jira client to see the raw XML structure, then recreate those requests with the right headers. Auth’s easy once you nail the envelope format. More work upfront but you get full control and skip all the dependency hell with the rpc plugin. Way more reliable than Axis, especially across different Jira versions.

You’re right - JAX-RPC is definitely your best bet here. I’ve dealt with the same headache on legacy Jira SOAP services, and that soapenc:Array error always pops up because JAX-WS just can’t handle SOAP encoding properly. Skip JAX-WS entirely and go with Apache Axis 1.x instead. Use wsdl2java like this: java org.apache.axis.wsdl.WSDL2Java -p your.package.name http://yourjira/rpc/soap/jirasoapservice-v2?wsdl. It’ll generate stub classes that actually get Jira’s older SOAP encoding. From there it’s pretty simple - create your service locator, grab the port, login with your creds, and you’re good to go. The auth token method works great, just make sure you handle session management right if this is going to production.

This topic was automatically closed 4 days after the last reply. New replies are no longer allowed.