recibir base64 en webservice con rest

Buen día compañeros ando creando un servicio web con javacv el cual debe de recibir una imagen procesarla y devolver la edad estimada de los rostros que aparezcan en dicha imagen.

Todo el background ya esta diseñado y en entornos locales funciona este proceso, ahora que quiero crear el servicio web me aventure a usar rest desde netbeans usando el metodo get e investigando veo que el cliente deberá pasar la imagen convertida a string con base64 de aquí mi pregunta.

¿Como recibo este string desde el servidor web?

estaba usando en el servidor

 
@GET
    @Produces(MediaType.APPLICATION_XML)
    public String getXml(@QueryParam("imagen") String imagen)
    {    
        return imagen;
    }

como prueba consumiendolo desde otra aplicacion en java de la siguiente manera

Client client = Client.create();  
    File file = new File("c://img.jpg");
    FileInputStream imageInFile = new FileInputStream(file);
    byte imageData[] = new byte[(int) file.length()];
    imageInFile.read(imageData);
    String imagenDataString = Base64.getEncoder().encodeToString(imageData);
   
    String url = "http://localhost:8090/Clasificador-javacv-web/webresources/EstimadorEdad?imagen="+imagenDataString;
 
   
    WebResource resource = client.resource(url);
    ClientResponse response = resource.accept("application/xml").get(ClientResponse.class);

    if(response.getStatus() == 200)
    {
        System.out.println(response.getEntity(String.class));
    }
    else
        System.out.println("Error : " + response.getStatus());
 }

Con el fin de obtener el mismo string base64 pero cuando lo ejecuto obtengo la siguiente excepcion

Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: java.io.IOException: Error writing to server
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
        at com.sun.jersey.api.client.Client.handle(Client.java:652)
        at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
        at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
        at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:509)
        at pruebas.conexion.main(conexion.java:35)
Caused by: java.io.IOException: Error writing to server
        at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:666)
        at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:678)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253)
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
        ... 5 more

y si hago el mismo procesimiento cambiando solo el parametro de envio

String url = "http://localhost:8090/Clasificador-javacv-web/webresources/EstimadorEdad?imagen=Hola";

si me retorna el resultado "Hola".

Gracias de antemano por su atención y agradezco su ayuda.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de SuperSerch

URL demasiado largo

Hola,

Aunuqe el RFC7230 RECOMIENDA que se deben soportar URL's de hasta 8000 octetos, la realidad es que casi nadie soporta mas de 2000 caracteres en el URL, por lo que tendrías que enviar tu imagen como POST

Imagen de hitzu

Tan fácil como eso.

Muchas gracias por contestar, efectivamente cambiando el protocolo lo pude enviar sin problemas.