Updated samples.

This commit is contained in:
Arjen Poutsma
2006-11-17 16:24:40 +00:00
parent 7cefaceb13
commit 36782789a3
2 changed files with 19 additions and 6 deletions

View File

@@ -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 {

View File

@@ -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")));