Updated samples.
This commit is contained in:
@@ -88,6 +88,7 @@ public class JmsTransportMessageListener extends ServerTransportObjectSupport
|
||||
|
||||
public void onMessage(Message message, Session session) throws JMSException {
|
||||
if (message instanceof TextMessage) {
|
||||
logger.info("Received message [" + message.getJMSMessageID() + "]");
|
||||
try {
|
||||
TransportInputStream tis = new JmsTransportInputStream((TextMessage) message);
|
||||
TransportOutputStream tos;
|
||||
@@ -100,7 +101,7 @@ public class JmsTransportMessageListener extends ServerTransportObjectSupport
|
||||
handle(tis, tos, getMessageEndpoint());
|
||||
}
|
||||
catch (Exception ex) {
|
||||
throw new JMSException(ex.getMessage());
|
||||
logger.error(ex, ex);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -111,8 +112,13 @@ public class JmsTransportMessageListener extends ServerTransportObjectSupport
|
||||
protected void handleResponse(TransportInputStream tis, TransportOutputStream tos, WebServiceMessage response)
|
||||
throws Exception {
|
||||
if (tos != null) {
|
||||
TextMessage requestMessage = ((JmsTransportInputStream) tis).getTextMessage();
|
||||
TextMessage responseMessage = ((JmsTransportOutputStream) tos).getTextMessage();
|
||||
Message requestMessage = ((JmsTransportInputStream) tis).getTextMessage();
|
||||
if (requestMessage.getJMSReplyTo() == null) {
|
||||
logger.warn("Incoming message has no ReplyTo set, not sending response");
|
||||
return;
|
||||
}
|
||||
response.writeTo(tos);
|
||||
Message responseMessage = ((JmsTransportOutputStream) tos).getTextMessage();
|
||||
Session session = ((JmsTransportOutputStream) tos).getSession();
|
||||
MessageProducer producer = session.createProducer(requestMessage.getJMSReplyTo());
|
||||
try {
|
||||
|
||||
@@ -49,8 +49,7 @@ public class JmsTransportOutputStream extends TransportOutputStream {
|
||||
* @see javax.jms.Message#setJMSCorrelationID(String)
|
||||
*/
|
||||
public JmsTransportOutputStream(Session session) {
|
||||
Assert.notNull(session, "session must not be null");
|
||||
this.session = session;
|
||||
this(session, null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,7 +62,6 @@ public class JmsTransportOutputStream extends TransportOutputStream {
|
||||
*/
|
||||
public JmsTransportOutputStream(Session session, String correlationId) {
|
||||
Assert.notNull(session, "session must not be null");
|
||||
Assert.hasLength(correlationId, "correlationId must not be null");
|
||||
this.session = session;
|
||||
this.correlationId = correlationId;
|
||||
}
|
||||
@@ -108,6 +106,15 @@ public class JmsTransportOutputStream extends TransportOutputStream {
|
||||
|
||||
private class TextMessageOutputStream extends ByteArrayOutputStream {
|
||||
|
||||
public void flush() throws IOException {
|
||||
try {
|
||||
getTextMessage().setText(new String(toString("UTF-8")));
|
||||
}
|
||||
catch (JMSException ex) {
|
||||
throw new IOException("Could not set message text: " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
try {
|
||||
getTextMessage().setText(new String(toString("UTF-8")));
|
||||
|
||||
Reference in New Issue
Block a user