[extra-standard] r1953 committed - Update mit MTOM

3 views
Skip to first unread message

extra-s...@googlecode.com

unread,
Jan 19, 2015, 7:52:28 AM1/19/15
to extra-sta...@googlegroups.com
Revision: 1953
Author: florianstratil
Date: Mon Jan 19 12:52:10 2015 UTC
Log: Update mit MTOM
https://code.google.com/p/extra-standard/source/detail?r=1953

Modified:

/trunk/java/apps/extraClientLight/src/main/java/de/extra/extraClientLight/helper/BuildExtraTransport.java

/trunk/java/apps/extraClientLight/src/main/java/de/extra/extraClientLight/helper/ExtraResponseHelper.java

=======================================
---
/trunk/java/apps/extraClientLight/src/main/java/de/extra/extraClientLight/helper/BuildExtraTransport.java
Fri Nov 7 11:31:42 2014 UTC
+++
/trunk/java/apps/extraClientLight/src/main/java/de/extra/extraClientLight/helper/BuildExtraTransport.java
Mon Jan 19 12:52:10 2015 UTC
@@ -19,12 +19,19 @@

package de.extra.extraClientLight.helper;

+import java.io.IOException;
+import java.io.InputStream;
+
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.mail.util.ByteArrayDataSource;
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;

+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import de.drv.dsrv.spoc.extra.v1_3.jaxb.components.Base64CharSequenceType;
import de.drv.dsrv.spoc.extra.v1_3.jaxb.components.ClassifiableIDType;
import de.drv.dsrv.spoc.extra.v1_3.jaxb.components.DataType;
@@ -45,6 +52,7 @@
import de.extra.extraClientLight.util.ClientConstants;

public class BuildExtraTransport {
+ private static Logger LOGGER =
LoggerFactory.getLogger(BuildExtraTransport.class);

public static TransportRequestType buildTransportRequest(
RequestExtraBean requestBean) {
@@ -55,8 +63,12 @@
request.setProfile(requestBean.getProfile());
request.setTransportHeader(buildHeader(requestBean));
if (!requestBean.getDataObjekt().isQuery()) {
- request.setTransportBody(buildBody(requestBean.getDataObjekt()
- .getData()));
+ try {
+ request.setTransportBody(buildBody(requestBean.getDataObjekt()
+ .getData()));
+ } catch (IOException e) {
+ LOGGER.error("Fehler beim Lesen des InputStreams",e);
+ }
} else {

request.setTransportBody(buildQueryBody(requestBean));
@@ -94,12 +106,14 @@

}

- private static TransportRequestBodyType buildBody(byte[] nutzdaten) {
+ private static TransportRequestBodyType buildBody(InputStream nutzdaten)
+ throws IOException {
TransportRequestBodyType requestBody = new TransportRequestBodyType();
DataType data = new DataType();

Base64CharSequenceType payload = new Base64CharSequenceType();
- DataSource ds = new ByteArrayDataSource(nutzdaten, "application");
+ DataSource ds = new ByteArrayDataSource(IOUtils.toByteArray(nutzdaten),
+ "application");
DataHandler dataHandler = new DataHandler(ds);
payload.setValue(dataHandler);
data.setBase64CharSequence(payload);
@@ -164,17 +178,17 @@
new QName("http://www.extra-standard.de/namespace/message/1",
"GT"), OperandType.class, operand);
jaxbOperand.setValue(operand);
-
+
requestIdArgument.getContent().add(jaxbOperand);
dataQuery.getArgument().add(requestIdArgument);
-/*
- procedureArgument.setProperty(ClientConstants.QUERY_PROCEDURE);
-
- dataQuery.getArgument().add(procedureArgument);
-
- dataTypeArgument.setProperty(ClientConstants.QUERY_DATATYPE);
- dataQuery.getArgument().add(dataTypeArgument);
-*/
+ /*
+ * procedureArgument.setProperty(ClientConstants.QUERY_PROCEDURE);
+ *
+ * dataQuery.getArgument().add(procedureArgument);
+ *
+ * dataTypeArgument.setProperty(ClientConstants.QUERY_DATATYPE);
+ * dataQuery.getArgument().add(dataTypeArgument);
+ */
dataRequest.setQuery(dataQuery);

return dataRequest;
=======================================
---
/trunk/java/apps/extraClientLight/src/main/java/de/extra/extraClientLight/helper/ExtraResponseHelper.java
Fri Nov 7 11:31:42 2014 UTC
+++
/trunk/java/apps/extraClientLight/src/main/java/de/extra/extraClientLight/helper/ExtraResponseHelper.java
Mon Jan 19 12:52:10 2015 UTC
@@ -19,13 +19,24 @@

package de.extra.extraClientLight.helper;

+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+
+import javax.activation.DataSource;
+import javax.mail.util.ByteArrayDataSource;
+import javax.xml.bind.JAXBException;

import org.apache.commons.io.IOUtils;
+import org.apache.cxf.attachment.AttachmentDataSource;
+import org.apache.cxf.attachment.LazyAttachmentCollection;
+import org.apache.cxf.attachment.LazyDataSource;
+import org.apache.cxf.message.Attachment;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

+import de.drv.dsrv.spoc.extra.v1_3.ExtraJaxbMarshaller;
import de.drv.dsrv.spoc.extra.v1_3.jaxb.components.FlagType;
import de.drv.dsrv.spoc.extra.v1_3.jaxb.response.TransportResponseType;
import de.extra.extraClientLight.model.ResponseExtraBean;
@@ -52,11 +63,28 @@
.getResponseDetails().getReport().getFlag().get(0);

getReportInformation(reportFlag);
+
+ // TODO Attachments in Response auslesen.
+
try {
- final InputStream in = extraResponse.getTransportBody().getData()
- .getBase64CharSequence().getValue().getInputStream();

- responseBean.setData(IOUtils.toByteArray(in));
+ DataSource nutzdatenDS = extraResponse.getTransportBody().getData()
+ .getBase64CharSequence().getValue().getDataSource();
+
+ InputStream in = null;
+ if (nutzdatenDS instanceof ByteArrayDataSource) {
+ in = extraResponse.getTransportBody().getData()
+ .getBase64CharSequence().getValue().getInputStream();
+
+ }
+
+ if (nutzdatenDS instanceof LazyDataSource) {
+
+ in = nutzdatenDS.getInputStream();
+
+ }
+
+ responseBean.setData(in);
} catch (IOException e) {
LOGGER.error("Fehler beim Lesen des Datenstreams");
responseBean.setReturnCode(9);
@@ -85,4 +113,22 @@
responseBean.setReturnCode(2);
}
}
+
+ public static void printResponse(TransportResponseType response) {
+
+ try {
+
+ ExtraJaxbMarshaller extraMarshaller = new ExtraJaxbMarshaller();
+
+ OutputStream outputStream = new ByteArrayOutputStream();
+
+ String responseString = extraMarshaller
+ .marshalTransportResponse(response);
+
+ LOGGER.debug("eXTra-Marshaller: " + responseString);
+
+ } catch (JAXBException e) {
+ LOGGER.error("Fehler beim marshalling", e);
+ }
+ }
}
Reply all
Reply to author
Forward
0 new messages