He comenzado un pequeño proyecto en Java.
Tengo que crear un cliente que envíe xml a una url como una solicitud HTTP POST.
lo intento usando java.net.*
paquete (continuación se presenta la pieza de código) pero estoy consiguiendo el error de la siguiente manera:La llamada al servicio web devuelve el error 500
java.io.IOException: Server returned HTTP response code: 500 for URL: "target url"
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at newExample.main(newExample.java:36)
Mi código es el siguiente:
try {
URL url = new URL("target url");
URLConnection connection = url.openConnection();
if(connection instanceof HttpURLConnection)
((HttpURLConnection)connection).setRequestMethod("POST");
connection.setRequestProperty("Content-Length", Integer.toString(requestXml.length()));
connection.setRequestProperty("Content-Type","text/xml; charset:ISO-8859-1;");
connection.setDoOutput(true);
connection.connect();
// Create a writer to the url
PrintWriter writer = new PrintWriter(new
OutputStreamWriter(connection.getOutputStream()));
// Get a reader from the url
BufferedReader reader = new BufferedReader(new
InputStreamReader(connection.getInputStream()));
writer.println();
writer.println(requestXml);
writer.println();
writer.flush();
String line = reader.readLine();
while(line != null) {
System.out.println(line);
line = reader.readLine();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
favor, ayuda con ejemplos adecuados o otras formas de hacer esto.
Señale errores/errores en el código anterior u otras posibilidades.
Mi servicio Web está en el marco de primavera
XML para enviar está en el formato de cadena: requestXml
El error HTTP 500 es "error interno del servidor" un error genérico devuelto cuando el servicio encuentra un error o arroja una excepción. Es posible que desee leer el cuerpo de la respuesta completa y ver si hay más información –
código de error 500 es un error interno del servidor. Así que me concentraría en el servidor en lugar del cliente realmente. – sfussenegger
Si su URL es correcta (puede verificar desde el navegador), no hay mucho que pueda hacer. Parece un error del servidor. – Nishant