Jira durch Java ansprechen

AmunRa

Gesperrter Benutzer
Hallo Ich hab eine "kleine" Aufgabe bekommen
und zwar soll ich ein Programm schreiben, mit dem ich bei JIRA z.B. einen Bug erstellen kann

mein Problem, dass ich hab ist, dass ich leider keine Ahnung von JIRA hab und daher wollte ich fragen

ob jemand von euch weiß wie ich von einem Java Progeram heraus mit einem Jira"-Server" (falls das so richtig ist) kommunizieren kann.

Ob vl jemand ein Tutorial hat in dem ich dies lernen kann?


Mfg
amunra
 

AmunRa

Gesperrter Benutzer
Vielen Dank für die Antworten, hab in der zwischen zeit auch das mit SOAP gefunden , aber auch XML-RCP (wobei dies nicht empfohlen wird)


@mvitz ich wäre echt dankbar wenn du mir da etwas senden könntest.

ich werd mich heute mal noch versuchen in SOAP einzuarbeiten, da ich noch nie damit gearbeitet habe.

MFG
amunra
 

AmunRa

Gesperrter Benutzer
Ich hab mir da jetzt ein paar informationen durchgelesen und bin jetzt auf eine Unklarheit gestossen.

Wenn ich SOAP nutze, brauche ich ja die WSDL datei und aus der kann ich dann iwie .java files generieren. Richtig?

Nun soll aber mein Programm nicht einen speziellen JIRA Server ansprechen sondern, der User soll zur Laufzeit des Programms den Server angeben mit dem er kommunizieren will. Ist hierfür SOAP geeignet bzw versteh ich da iwie etwas falsch?

MFG
amunra
 
B

bygones

Gast
ich persoenlich wuerde auch nicht mehr mit SOAP etwas machen, sondern versuchen REST zu nutzen - dafuer bieten sie ja auch ne API an.
 

AmunRa

Gesperrter Benutzer
Mir sagt leider REST noch weniger wie SOAP.

Leider finde ich auf der Seite kein Tutorial wie ich einen REST Client schreibe oder hab ich da etwas übersehen?


Und um nocheinmal auf meine Zuvor gestellte Frage einzugehen.
Sehe ich dass richtig, dass ich meine Problemstellung (mit einem Client auf unterschiedliche Jira Server zu verbinden) mit SOAP nicht lösen kann?


mfg

amunra
 

mvitz

Top Contributor
Doch man kann die Adresse der WSDL Datei auch zur Laufzeit übergeben, dass geht mit SOAP Problemlos. XML-RPC hatte damals ca. vor 6 Monaten viele Funktionen nicht, die aber per SOAP gehen.

Der REST Support ist mir neu. Wenn man es kann, sollte man vermutlich tatsächlich diesen nutzen, aber die Tutorial Seite ist imho noch sehr unvollständig...
 

AmunRa

Gesperrter Benutzer
Also sollte ich versuchen trotzdem versuchen das ganze mit REST zu implementieren.

Wird ja eigentlich auch von atlassian empfohlen
All Atlassian products, including JIRA, are gradually moving to REST as the preferred remote access method

Gut dann sollte ich mir mal ein Tutorial suchen dass mir ein bisschen die grundzüge für REST zeigt.

wenn jemand ein etwas brauchbares kennt bitte posten

Danke
mfg
amunra
 
B

bygones

Gast
REST fuer den Client ist eigentlich recht einfach.

Im Grunde ists nur ein HTTP Get Request an eine URL...
 

AmunRa

Gesperrter Benutzer
danke für den Link

ich weiß noch immer nicht wwelcher weg der beste ist um mit JIRA zu komunizieren.
ob SOAP oder REST.

mvitz könntest du mir bitte trotzdem (falls es möglich ist ) mir deinen Code für SOAP zukommen lassen?


mfg
amunra
 
B

bygones

Gast
danke für den Link

ich weiß noch immer nicht wwelcher weg der beste ist um mit JIRA zu komunizieren.
ob SOAP oder REST.

mvitz könntest du mir bitte trotzdem (falls es möglich ist ) mir deinen Code für SOAP zukommen lassen?


mfg
amunra
wenn sie selbst sagen es ist REST, so wuerde ich mir erstmal das REST API anschauen und schaun obs funktioniert.

wenn es das nicht dann kannst du immer noch mit SOAP es versuchen.

wie gesagt - REST ist verblueffend einfach...
 

mvitz

Top Contributor
Jap, stimme bygones da zu. Im Endeffekt muss man einfach nur HTTP GET Requests an die passende URL senden (bei JIRA kommt dann idr. noch irgendwie das mitsenden der Login Informationen dazu) und die Antwort (XML, JSON, HTML) parsen und in deine Objekte umwandeln (z.B. bei XML mit JAX-B).

Alternativ kann man eben auch die Jersey Client Klassen nutzen, das spart einem hier und da bestimmt Arbeit.

Die SOAP Sachen, sofern ich sie noch habe/finde lasse ich dir auf jeden Fall zu kommen.
 

AmunRa

Gesperrter Benutzer
Hallo

bzg. REST bei JIRA weis irgendwer ab welcher Version vom JIRA-Server dies unterstütz wird

ich glaub ich hab irgendwo gelesen, dass dies erst mit der neuesten Version geht oder lieg ich da falsch?
ich find nur den beitrag nicht mehr wo das gestanden ist.

mfg
amunra
 

mvitz

Top Contributor
Sry, dass ich erst jetzt erst wieder was schreibe, bin aber gerade erst an nen PC gekommen.

1) Zu der Versionsfrage, musst du mal selber auf der JIRA Seite suchen, hatte da bisher nix zu gelesen und hab jetzt keine Lust zu suchen ;)
2) Das Projekt habe ich von der Arbeit kopiert, werde dann morgen das ganze so verkleinern, dass es als Beispiel/Start für dich passt. Hoffe du kannst Ant, denn darüber generiere ich z.B. die JIRA SOAP Klassen. Denke mal, dass ich das bis ca. 12:00 geschafft haben sollte.
 

AmunRa

Gesperrter Benutzer
So
Es ist jetzt entschieden worden, dass es über SOAP gelöst werden soll.
Hab jetzt leider nur das Problem, dass ich z.B die WSDL datei von http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl
weder mit wsimport noch mit wsdl2java parsen kann.

hab dann versucht die kommunikation mit JIRA ohne WSDL -Datei zu realisieren, z.B über Dynamic Interface Invokation, und das funktioniert auch bis zu einem gewissen grad (ich kann mich anmelden und wieder ausloggen). Aber sobald ich eine Methode aufrufe die eine Object zurückliefert das kein JAVA Standard Typ ist bekomme ich diese Exception

[c] org.xml.sax.SAXException: No deserializer defined for array type {http://beans.soap.rpc.jira.atlassian.com}RemoteProject[/c]

was verständlich ist, da ja mein Programm nicht wissen kann wie er dies parsen/deserialisieren soll.

Hier ist mal mein CODE mit dem ich das versuchen wollte
Java:
package jira.test.soap;

import java.rmi.RemoteException;


import javax.xml.namespace.QName;
import javax.xml.rpc.Call;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;

import com.atlassian.jira.rpc.soap.beans.RemoteProject;
import com.atlassian.jira.rpc.soap.*;

public class Main {
	
    static final String LOGIN_NAME = "amunra";
    static final String LOGIN_PASSWORD = "";
    static final String SERVICE_NAME= "JiraSoapServiceService";
    static final String URI_= "impl:jirasoapservice-v2SoapBinding";
    static final String ENDPOINT = "http://jira.atlassian.com/rpc/soap/jirasoapservice-v2";
    static final String WSDLLOCATION= "http://jira.atlassian.com/rpc/soap/jirasoapservice-v2?wsdl";

    private static String token;
    private static Call call;
    private static Service service;
    private static boolean loggedin = false;
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		try{	
			ServiceFactory factory = 
                ServiceFactory.newInstance();
			 service= factory.createService(new java.net.URL(WSDLLOCATION),new QName(ENDPOINT, SERVICE_NAME));
			call= (Call)service.createCall();
			login();
			
			askAllProjects();  //<---- BEI DIESER METHODE TRITT DER FEHLER AUF
		
			logout();
			
			
			
			}catch(org.apache.axis.AxisFault fault){
				if (loggedin){
					logout();
				}
				
				System.out.println("AXIS FAULT");
				System.out.println("Fault Code: "+fault.getFaultCode());
				System.out.println("Fault String: "+fault.getFaultString());
				System.out.println("Fault Details: "+fault.getFaultDetails());
				System.out.println("Fault Reason: "+ fault.getFaultReason());
				System.out.println("Fault Role: "+fault.getFaultRole());
				fault.printStackTrace();
				
			}catch(Exception e){
				if (loggedin){
					logout();
				}
				System.out.println("Failure during execution of the command");
				System.err.println(e);
			}
	}

	
	
	private static void askAllProjects() throws RemoteException, ServiceException {
		//Dynmaic Proxy
//		JiraSoapService soapservice= (JiraSoapService) service.getPort(new QName(ENDPOINT, "jirasoapservice-v2"), JiraSoapService.class);

		//Dynmaic Interface Invokation
		call.setOperationName(new QName(ENDPOINT, "getProjectsNoSchemes"));
		RemoteProject[] output=(RemoteProject[])call.invoke(new Object[]{token});
		
		
	}
	public static void login() throws RemoteException{
		call.setOperationName(new QName(ENDPOINT, "login"));
		
		call.setTargetEndpointAddress(ENDPOINT);
		token=  (String)call.invoke(new Object[] {
			LOGIN_NAME, 
			LOGIN_PASSWORD});
		System.out.println("you are logged in successfully!\n your token is:\n"+ token);
		loggedin= true;
		
	}
	private static void logout(){
		
		try{
		call.setOperationName(new QName(ENDPOINT,"logout"));
		call.setTargetEndpointAddress(ENDPOINT);
		if ((Boolean)call.invoke(new Object[]{token}))		System.out.println("Logout successful");
		}catch(org.apache.axis.AxisFault fault){
		
			System.out.println("AXIS FAULT");
			System.out.println("Fault Code: "+fault.getFaultCode());
			System.out.println("Fault String: "+fault.getFaultString());
			System.out.println("Fault Details: "+fault.getFaultDetails());
			System.out.println("Fault Reason: "+ fault.getFaultReason());
			System.out.println("Fault Role: "+fault.getFaultRole());
			fault.printStackTrace();
			
		}catch(Exception e){
			
			System.out.println("Failure during execution of the command logout");
			System.err.println(e);
		}
		
		
	}
	
}
 

mvitz

Top Contributor
Also ich weiß es nicht mehr genau, aber ich hatte zumindest mit Axis2 auch Probleme, weil deren WSDL sich wohl nicht 100% an die Spezifikation hält. Deshalb habe ich Axis1 benutzt, das WSDL2Java funktioniert nämlich.

Ich habe dir mal meine Sourcen hochgeladen: http://dl.dropbox.com/u/6767204/Jira-SOAP-Client-0.0.1-src.tar.gz

Wenn du das ganze als Eclipse Project benutzen möchtest, musst du folgende Ordner zu Source-Foldern machen:

Code:
src/java
src/conf
build/gen-src
build/gen-src erscheint erst, nachdem man das Ant-Target: build aufgerufen hat (hier landen die aus der WSDL generieren Klassen.

Zum testen habe ich mir gerade hier: System Dashboard - Atlassian Software Inc. einen Account angelegt. Wenn du das auch machst, musst du nur noch in der Main-Klasse User/Passwort eintragen, dann bekommst du den Projectleader des Projectes JRA angezeigt.

Hoffe das hilft.
 

AmunRa

Gesperrter Benutzer
Vielen Dank für dein Bemühen du hast recht mit einer der Axis 1.3 kann ich wsdl2Java nutzen

ich werd mir deinen Code auch gleich ansehen. und er wird mir sicher weiter helfen

wenn ich noch weitere Fragen habe werd ich mich nocheinmal melden
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Projekt mit Jira und Confluence sturkturieren Softwareentwicklung 3
TheDarkRose JIRA, Trac oder Bugzilla? Softwareentwicklung 27
Gossi Ruby: Suche durch Datein Softwareentwicklung 4
G Umwandung von Vb auf Java Softwareentwicklung 1
von Spotz Kommunikation zwischen Java und Container Orchestrator (Microservices) Softwareentwicklung 11
S Microservices in Java Spring: Nebenläufigkeitsprobleme lösen Softwareentwicklung 6
temi Elementfunktionen vs. Nichtelementfunktionen in Java Softwareentwicklung 20
R Umsetzungen in Java vs. Umsetzungen auf Datenbankebene Softwareentwicklung 9
L Module Eclipse Java 9 Softwareentwicklung 12
R Software-Architekt (Schwerpunkt Java) Softwareentwicklung 9
S VB.NET / C# als Java-Entwickler? Softwareentwicklung 2
J Java Kentnisse vertiefen oder andere Programmiersprache probieren? Softwareentwicklung 8
U Java vs. anderen plattformunabhängige Programmiersprachen Softwareentwicklung 8
S JNI Java from C Softwareentwicklung 0
H [Java]Regex Hilfe Softwareentwicklung 3
D Teamspeak Java html app Softwareentwicklung 5
N UML Komponenten als Java-Klassen abbilden Softwareentwicklung 4
S Java Anfänger hat Probleme mit Scanner Softwareentwicklung 6
C Lohnt es sich noch ein neues Projekt in C++ anstatt Java zu realisieren? Softwareentwicklung 4
U Java oder welche Sprache? Softwareentwicklung 98
MrWhite Ist Java gar nicht sooo objektorientiert??! Softwareentwicklung 16
J Java Long-Werte in C++ auslesen Softwareentwicklung 4
K Mit "Java" html-Seite entscripten Softwareentwicklung 6
Airwolf89 Theoretische Frage - In Java Java-Programme schreiben Softwareentwicklung 5
G Mischsprache aus Java & C# Softwareentwicklung 23
H COBOL und Java Softwareentwicklung 17
H Java als Backend, Javascript als View Softwareentwicklung 3
D Sind EJB Komponenten auch mit Java Swing nutzbar? Softwareentwicklung 8
U Decorator Pattern in der Java API Softwareentwicklung 6
J Java Software nach C++ portieren Softwareentwicklung 6
C Unterschiede: C++ vs. C# vs. Java Softwareentwicklung 21
G Umstieg Java/Oracle => C#/MSSQL Softwareentwicklung 13
M Immutable Objekte und funktionales Programmieren in Java oder Scala Softwareentwicklung 34
B [Web 2.0] Java vs PHP Softwareentwicklung 28
Raidri Flex mit Java Softwareentwicklung 2
L Java + WCF Softwareentwicklung 9
Airwolf89 Java-Programm in C++ portieren Softwareentwicklung 4
T Kapselung nich vollständig umgesetzt in Java? Softwareentwicklung 4
J Korpus mit Python einlesen - weiterbearbeiten mit Java Softwareentwicklung 4
N c# nach java Softwareentwicklung 14
K Suche freies UML Tool um aus .java dateien Diagramme zu. Softwareentwicklung 8
D Java in KLassen, schon vorhanden? Softwareentwicklung 3
B Was ist besser für Grafiken? Java oder C#? Softwareentwicklung 9
R Java Passwort verschlüsseln --> kompliziert! wirklich doo Softwareentwicklung 13
F vorteile php gegenüber java? Softwareentwicklung 46
M Umwandlung von String in java.sql.Date Softwareentwicklung 2
lolkind Iso Datein per Java über Windows XP brennen Softwareentwicklung 13
U [Diskussion] Java vs. C# Softwareentwicklung 208
E Java Programm distributen Softwareentwicklung 35
J Hardware zugriff mit java? Softwareentwicklung 4
N Für und Wieder von Java und .NET (primär C#) | Performance Softwareentwicklung 6
G java.lang.ArrayIndexOutOfBoundsException Softwareentwicklung 5
E Default Java unter Linux aendern? Softwareentwicklung 3
S arabische Buchstaben in java ?:L Softwareentwicklung 3
L Noch 'ne Perl-Frage. Kehre dann auch reumütig zu Java zurück Softwareentwicklung 10
G Serveranbindung mit java Softwareentwicklung 24
P Grafik-Programm mit JAVA? Softwareentwicklung 21
G Umstieg von Delphi zu JAVA (wichtige Fragen!) Softwareentwicklung 41
F Welche Sprache sieht ähnlich aus wie Java? Softwareentwicklung 7
T Suche A Star Java Beispielprogramm Softwareentwicklung 2
D C# zu Java - Übersetzer gesucht. Softwareentwicklung 3
F Windows Media Player in Java? Softwareentwicklung 11
C C code in java umschreiben Softwareentwicklung 9
O java und c# - die zweite. Softwareentwicklung 7
S Problem PJIRC java-applet Softwareentwicklung 4
U Geeignete Plattform für Projekt (JSP, PHP, Java-Anwendung) Softwareentwicklung 7
G C++ in JAVA verpacken Softwareentwicklung 2
D C# vs. java Softwareentwicklung 16
G Darstellung von Java-Projekten mit UML Softwareentwicklung 3
E Java & Performance Softwareentwicklung 9
T Brauche für meinen Java-Code dringend Hilfe Softwareentwicklung 4
B Wo bekommt man fertige Java-Programme (z.B. für Lsg LGS) Softwareentwicklung 3
W Herangehensweise an ein Java Programm Softwareentwicklung 4
B Programmierung eines 8051-Assemblers unter Java Softwareentwicklung 3
M Bidirektionale Assoziazion in Java realisieren? Softwareentwicklung 3
J Java <-> C# Softwareentwicklung 1
S c# schneller java - wieso ? Softwareentwicklung 12
D C++ und Java Softwareentwicklung 61

Ähnliche Java Themen

Neue Themen


Oben