Пользовательский HttpClient для RemoteConverter Documents4j

Я использую RemoteConverter из веб-приложения jBoss на автономный сервер, созданный как server-standalone по умолчанию, включенный в проект document4j.

Внутри jboss у меня есть старая версия необходимых библиотек httpclient-4.0.1.jar и связанных с ними httpcore-4.0.1.jar, поэтому я сталкиваюсь с большим количеством ClassDefNotFoundException, вызванных другой версией jar, загруженной JVM.

Существует определенная проблема с объектом HttpClientConnectionManager, который еще не доступен в версии.

Чтобы избежать этой проблемы, я хотел бы создать собственный http-клиент для standalone-server, потому что из-за предыдущих проблем я не могу использовать Jersey.

Кто-нибудь создал другой клиент для этого standalone-server? Каковы спецификации для создания собственного RemoteClient?

ОБНОВЛЕНИЕ 1

После небольшого анализа с помощью сниффинга я выяснил состав сообщения, поэтому я только что закончил пользовательский HttpClient для этого сервера следующим образом:

    File wordFile = new File("C:/temp/test.docx");
    InputStream targetStream = new FileInputStream(wordFile);

    URL url = new URL("http://localhost:9998");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/vnd.com.documents4j.any-msword");
    conn.setRequestProperty("Accept", "application/pdf");
    conn.setRequestProperty("Converter-Job-Priority", "1000");


    OutputStream os = conn.getOutputStream();
    os.write(IOUtils.toByteArray(targetStream));
    os.flush();

    if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
        throw new RuntimeException("Failed : HTTP error code : "
            + conn.getResponseCode());
    }

    BufferedReader br = new BufferedReader(new InputStreamReader(
            (conn.getInputStream())));
    FileWriter ostream = new FileWriter("C:/temp/test.pdf");
    BufferedWriter out = new BufferedWriter(ostream);
    String output;
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
        System.out.println(output);
        out.write(output+"\n");
    }
    br.close();
    out.close();
    os.close();
    conn.disconnect();

Теперь у меня другая проблема, если я пытаюсь открыть только что созданный файл test.pdf, он весь белый, но с правильным количеством страниц. Если я открою файл в текстовом редакторе и проанализирую начало и конец файла, я найду следующие символы:

%PDF-1.5
%µµµµ
1 0 obj  
[...]
startxref
1484122
%%EOF

Кажется, это хороший PDF-файл.

Есть ли что-то еще, что можно сделать с этим файлом, полученным с REST-сервера?


person D. Pesc.    schedule 04.05.2016    source источник


Ответы (1)