Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2012, 05:52
amiricci
 
Fecha de Ingreso: mayo-2012
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Consumir Web Service REST

Hola a todos,

Primero, soy bastante novata y ando algo perdida con el tema de los web services.

Tengo una aplicación (/TavernaServer.2.2a1) es decir, un punto .war ejecutándose en el tomcat. Necesito utilizar dicha aplicación para ejecutar una serie de workflows que tengo almacenados como ficheros en mi pc, y para ello lo tengo que invocar desde mi aplicación java.

Según la documentación que tengo de dicha aplicación, se supone que bastaría con subir los ficheros a direcciones... Y se supone que se ejecutaría dicho fichero, pero por más que leo la documentación y busco como invocar web services más me lio :(

Esta es la documentación:

http://dev.mygrid.org.uk/wiki/display/taverna/Usage

Y este es el código que he implementado y ya me da fallo, porque me devuelve un 404:

package WorkflowsExe;

import java.io.File;
import java.io.IOException;
import java.net.*;
import java.io.*;

public class Execution2 {

public static void main(String[] args) throws IOException {
String linea = null;
String uri =
"http://localhost:8080/TavernaServer%2E2%2E2a1/rest/runs";
URL url = null;

try {
url = new URL(uri);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpURLConnection connection =
(HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setAllowUserInteraction(false);
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");

// Creamos en la dirección indicada el fichero del workflow
OutputStream out = connection.getOutputStream();
Writer writer = new OutputStreamWriter(out, "UTF-8");

File fich = new File ("/home/marta/Ficheros/246697_5.t2flow");
FileReader fr = new FileReader (fich);
BufferedReader br = new BufferedReader(fr);

while ( ( linea = br.readLine() ) != null){
writer.write(URLEncoder.encode(linea));
}

writer.close();
out.close();
int resultado = connection.getResponseCode();
if (resultado != 201) {
throw new IOException(connection.getResponseMessage());
}
//connection.setRequestMethod("GET");
}

}
Alguien me puede echar un cable o alguna documentación para invocar dicho web service.

De antemano muchas gracias