
org.petalslink.dsb.service.client.saaj.Client Maven / Gradle / Ivy
The newest version!
/**
*
*/
package org.petalslink.dsb.service.client.saaj;
import javax.xml.namespace.QName;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import org.petalslink.dsb.saaj.utils.SOAPMessageUtils;
import org.petalslink.dsb.service.client.ClientException;
import org.petalslink.dsb.service.client.Message;
import org.petalslink.dsb.service.client.MessageImpl;
import org.petalslink.dsb.service.client.MessageListener;
/**
* @author chamerling
*
*/
public class Client implements org.petalslink.dsb.service.client.Client {
/**
*
*/
public Client() {
}
/*
* (non-Javadoc)
*
* @see
* org.petalslink.dsb.service.client.Client#fireAndForget(org.petalslink
* .dsb.service.client.Message)
*/
public void fireAndForget(Message message) throws ClientException {
throw new ClientException("Not implemented");
}
/*
* (non-Javadoc)
*
* @see
* org.petalslink.dsb.service.client.Client#sendReceive(org.petalslink.dsb
* .service.client.Message)
*/
public Message sendReceive(Message message) throws ClientException {
MessageImpl result = null;
if (message == null) {
throw new ClientException("Message can not be null...");
}
QName operation = message.getOperation();
if (operation == null) {
throw new ClientException("Operation can not be null...");
}
try {
SOAPMessage request = SOAPMessageUtils.createSOAPMessageFromBodyContent(message
.getPayload());
MimeHeaders hd = request.getMimeHeaders();
hd.addHeader("SOAPAction", operation.getLocalPart());
SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance();
SOAPConnection connection = soapConnFactory.createConnection();
SOAPMessage response = connection.call(request, message.getEndpoint());
result = new MessageImpl();
if (response != null) {
result.setPayload(SOAPMessageUtils.getBodyFromMessage(response));
}
} catch (UnsupportedOperationException e) {
throw new ClientException(e);
} catch (SOAPException e) {
throw new ClientException(e);
}
return result;
}
/*
* (non-Javadoc)
*
* @see
* org.petalslink.dsb.service.client.Client#sendAsync(org.petalslink.dsb
* .service.client.Message,
* org.petalslink.dsb.service.client.MessageListener)
*/
public void sendAsync(Message message, MessageListener listener) throws ClientException {
throw new ClientException("Not implemented");
}
/* (non-Javadoc)
* @see org.petalslink.dsb.service.client.Client#getName()
*/
public String getName() {
return "SAAJClient";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy