Ich verwende eine RemoteConverter
von einer jBoss-Webanwendung auf einen eigenständigen Server, der als Standard server-standalone
im Projekt documents4j enthalten ist.Benutzerdefinierter HttpClient für RemoteConverter von Documents4j
Innen Jboss Ich habe eine alte Version von benötigten Bibliotheken bekommt httpclient-4.0.1.jar
und verwandte httpcore-4.0.1.jar
so mit vielen ClassDefNotFoundException
durch die andere Version des JVM geladen Glases verursacht ich bin vor.
Es ist ein spezifisches Problem mit HttpClientConnectionManager
Objekt, das noch nicht verfügbar ist in Version
dieses Problem zu vermeiden Ich mag würde ein benutzerdefinierte HTTP-Client für die standalone-server
bluild, weil aufgrund der bisherigen Probleme, es ist nicht möglich für mich zu verwenden Jersey
.
Hat jemand einen anderen Client für diesen standalone-server
bauen? Was sind die Spezifikationen, um eine benutzerdefinierte RemoteClient
zu erstellen?
UPDATE 1
Nach ein wenig Analyse mit Hilfe eines Sniffing-Tools, ich dachte, die Zusammensetzung der Botschaft, also habe ich gerade zu Ende gegangen eine benutzerdefinierte HttpClient
für diesen Server, wie folgend:
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();
Jetzt habe ich ein anderes Problem bekommt, wenn ich versuche gerade erstellt test.pdf Datei zu öffnen, alles weiß, aber mit der richtigen Anzahl der Seiten ist. Wenn ich die Datei mit einem Texteditor öffnen und den Anfang und das Ende der Datei analysieren, fand ich die folgenden Zeichen:
%PDF-1.5
%µµµµ
1 0 obj
[...]
startxref
1484122
%%EOF
Es scheint eine gute PDF-Datei zu sein.
Es gibt noch etwas anderes mit dieser Datei zu tun, die von REST Server empfangen wurde?