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);
}
}
}