aboutsummaryrefslogtreecommitdiff
path: root/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java
diff options
context:
space:
mode:
Diffstat (limited to 'DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java')
-rw-r--r--DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java105
1 files changed, 105 insertions, 0 deletions
diff --git a/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java b/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java
new file mode 100644
index 000000000..821d636a2
--- /dev/null
+++ b/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java
@@ -0,0 +1,105 @@
+package eu.stork.documentservice.utils;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Service;
+import javax.xml.ws.soap.SOAPBinding;
+
+import eu.stork.documentservice.DocumentService;
+import eu.stork.documentservice.exceptions.DocumentServiceException;
+
+public class ExternalDocservice {
+
+ /**
+ * Get document from external DTL
+ * @param documentTransferRequest the document transfer request (attribute query)
+ * @param dtlUrl the URL of external DTL
+ * @return the document found
+ * @throws DocumentServiceException
+ */
+ public static byte[] getDocument(String documentTransferRequest, String dtlUrl) throws DocumentServiceException
+ {
+ if (documentTransferRequest != null && !documentTransferRequest.isEmpty())
+ {
+ if (dtlUrl != null && !dtlUrl.isEmpty())
+ {
+ try
+ {
+ URL url = new URL(dtlUrl);
+
+ QName qname = new QName("http://stork.eu",
+ "DocumentService");
+
+ Service service = Service.create(url, qname);
+ DocumentService docservice = service.getPort(DocumentService.class);
+
+ BindingProvider bp = (BindingProvider) docservice;
+ SOAPBinding binding = (SOAPBinding) bp.getBinding();
+ binding.setMTOMEnabled(true);
+
+ return docservice.getDocument(documentTransferRequest, dtlUrl);
+ }
+ catch (MalformedURLException e) {
+ e.printStackTrace();
+ throw new DocumentServiceException("DTL url is invalid.", e);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ throw new DocumentServiceException(e);
+ }
+ }
+ else
+ throw new DocumentServiceException("DTL url is empty.");
+ }
+ else
+ throw new DocumentServiceException("Document transfer request is empty.");
+ }
+
+ /**
+ * Get document mime from external DTL
+ * @param docId the document id
+ * @param dtlUrl the URL of external DTL
+ * @return the document mime found
+ * @throws DocumentServiceException
+ */
+ public static String getDocumentMime(String docId, String dtlUrl) throws DocumentServiceException
+ {
+ if (docId != null && !docId.isEmpty())
+ {
+ if (dtlUrl != null && !dtlUrl.isEmpty())
+ {
+ try
+ {
+ URL url = new URL(dtlUrl);
+
+ QName qname = new QName("http://stork.eu",
+ "DocumentService");
+
+ Service service = Service.create(url, qname);
+ DocumentService docservice = service.getPort(DocumentService.class);
+
+ BindingProvider bp = (BindingProvider) docservice;
+ SOAPBinding binding = (SOAPBinding) bp.getBinding();
+ binding.setMTOMEnabled(true);
+
+ return docservice.getDocumentMime(docId, dtlUrl);
+ }
+ catch (MalformedURLException e) {
+ e.printStackTrace();
+ throw new DocumentServiceException("DTL url is invalid.", e);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ throw new DocumentServiceException(e);
+ }
+ }
+ else
+ throw new DocumentServiceException("DTL url is empty.");
+ }
+ else
+ throw new DocumentServiceException("Document Id is empty.");
+ }
+}