You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2012/03/06 13:54:12 UTC
svn commit: r1297455 -
/axis/axis2/java/transports/trunk/modules/tcp/src/org/apache/axis2/transport/tcp/TCPTransportSender.java
Author: sagara
Date: Tue Mar 6 12:54:11 2012
New Revision: 1297455
URL: http://svn.apache.org/viewvc?rev=1297455&view=rev
Log:
Applied patch for TRANSPORTS-8.
Modified:
axis/axis2/java/transports/trunk/modules/tcp/src/org/apache/axis2/transport/tcp/TCPTransportSender.java
Modified: axis/axis2/java/transports/trunk/modules/tcp/src/org/apache/axis2/transport/tcp/TCPTransportSender.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/tcp/src/org/apache/axis2/transport/tcp/TCPTransportSender.java?rev=1297455&r1=1297454&r2=1297455&view=diff
==============================================================================
--- axis/axis2/java/transports/trunk/modules/tcp/src/org/apache/axis2/transport/tcp/TCPTransportSender.java (original)
+++ axis/axis2/java/transports/trunk/modules/tcp/src/org/apache/axis2/transport/tcp/TCPTransportSender.java Tue Mar 6 12:54:11 2012
@@ -26,11 +26,19 @@ import org.apache.axis2.engine.AxisEngin
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.transport.OutTransportInfo;
import org.apache.axis2.transport.TransportUtils;
+import org.apache.axis2.transport.MessageFormatter;
import org.apache.axis2.transport.base.AbstractTransportSender;
+import org.apache.axis2.transport.base.BaseUtils;
import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.om.OMOutputFormat;
import java.io.IOException;
-import java.net.*;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketAddress;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.Map;
import java.util.HashMap;
@@ -48,10 +56,15 @@ public class TCPTransportSender extends
Socket socket = openTCPConnection(targetEPR, timeout);
msgContext.setProperty(TCPConstants.TCP_OUTPUT_SOCKET, socket);
+ String contentType = params.get("contentType");
+ if (contentType == null) {
+ contentType = TCPConstants.TCP_DEFAULT_CONTENT_TYPE;
+ }
+
try {
- TransportUtils.writeMessage(msgContext, socket.getOutputStream());
+ writeOut(msgContext, socket, contentType);
if (!msgContext.getOptions().isUseSeparateListener() && !msgContext.isServerSide()){
- waitForReply(msgContext, socket, params.get("contentType"));
+ waitForReply(msgContext, socket, contentType);
}
} catch (IOException e) {
handleException("Error while sending a TCP request", e);
@@ -60,7 +73,7 @@ public class TCPTransportSender extends
} else if (outTransportInfo != null && (outTransportInfo instanceof TCPOutTransportInfo)) {
TCPOutTransportInfo outInfo = (TCPOutTransportInfo) outTransportInfo;
try {
- TransportUtils.writeMessage(msgContext, outInfo.getSocket().getOutputStream());
+ writeOut(msgContext, outInfo.getSocket(), outInfo.getContentType());
} catch (IOException e) {
handleException("Error while sending a TCP response", e);
} finally {
@@ -69,6 +82,17 @@ public class TCPTransportSender extends
}
}
+ private void writeOut(MessageContext msgContext, Socket socket,
+ String contentType) throws IOException {
+ MessageFormatter messageFormatter = TransportUtils.getMessageFormatter(msgContext);
+ OMOutputFormat format = BaseUtils.getOMOutputFormat(msgContext);
+ format.setContentType(contentType);
+ byte[] payload = messageFormatter.getBytes(msgContext, format);
+ OutputStream out = socket.getOutputStream();
+ out.write(payload);
+ out.flush();
+ }
+
@Override
public void cleanup(MessageContext msgContext) throws AxisFault {
Object socketObj = msgContext.getProperty(TCPConstants.TCP_OUTPUT_SOCKET);
@@ -85,10 +109,6 @@ public class TCPTransportSender extends
return;
}
- if (contentType == null) {
- contentType = TCPConstants.TCP_DEFAULT_CONTENT_TYPE;
- }
-
try {
MessageContext responseMsgCtx = createResponseMessageContext(msgContext);
SOAPEnvelope envelope = TransportUtils.createSOAPMessage(msgContext,