/* *Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * *WSO2 Inc. licenses this file to you under the Apache License, *Version 2.0 (the "License"); you may not use this file except *in compliance with the License. *You may obtain a copy of the License at * *http://www.apache.org/licenses/LICENSE-2.0 * *Unless required by applicable law or agreed to in writing, *software distributed under the License is distributed on an *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *KIND, either express or implied. See the License for the *specific language governing permissions and limitations *under the License. */ package org.wso2.esb.integration.common.utils.clients.axis2client; import org.apache.axiom.om.OMElement; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.testng.Assert; import javax.xml.namespace.QName; public class AxisServiceClient { private static final Log log = LogFactory.getLog(AxisServiceClient.class); public OMElement sendReceive(OMElement payload, String endPointReference, String operation) throws AxisFault { ServiceClient sender; Options options; OMElement response = null; if (log.isDebugEnabled()) { log.debug("Service Endpoint : " + endPointReference); log.debug("Service Operation : " + operation); log.debug("Payload : " + payload); } try { sender = new ServiceClient(); options = new Options(); options.setTo(new EndpointReference(endPointReference)); options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); options.setTimeOutInMilliSeconds(45000); options.setAction("urn:" + operation); sender.setOptions(options); response = sender.sendReceive(payload); if (log.isDebugEnabled()) { log.debug("Response Message : " + response); } } catch (AxisFault axisFault) { log.error(axisFault.getMessage()); throw new AxisFault("AxisFault while getting response :" + axisFault.getMessage(), axisFault); } Assert.assertNotNull(response); return response; } // axis2 clients with header setting public OMElement sendReceive(OMElement payload, String endPointReference, String operation, String localName, String ns, String value) throws AxisFault { ServiceClient sender; Options options; OMElement response = null; if (log.isDebugEnabled()) { log.debug("Service Endpoint : " + endPointReference); log.debug("Service Operation : " + operation); log.debug("Payload : " + payload); } try { sender = new ServiceClient(); sender.addStringHeader(new QName(ns, localName), value); // Set headers options = new Options(); options.setTo(new EndpointReference(endPointReference)); options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); options.setAction("urn:" + operation); sender.setOptions(options); response = sender.sendReceive(payload); if (log.isDebugEnabled()) { log.debug("Response Message : " + response); } } catch (AxisFault axisFault) { log.error(axisFault.getMessage()); throw new AxisFault("AxisFault while getting response :" + axisFault.getMessage(), axisFault); } Assert.assertNotNull(response); return response; } public OMElement sendReceive(OMElement payload, String endPointReference, String operation, String contentType) throws AxisFault { ServiceClient sender; Options options; OMElement response = null; if (log.isDebugEnabled()) { log.debug("Service Endpoint : " + endPointReference); log.debug("Service Operation : " + operation); log.debug("Payload : " + payload); } try { sender = new ServiceClient(); options = new Options(); options.setTo(new EndpointReference(endPointReference)); options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); options.setTimeOutInMilliSeconds(45000); options.setAction("urn:" + operation); options.setProperty(Constants.Configuration.MESSAGE_TYPE, contentType); sender.setOptions(options); response = sender.sendReceive(payload); if (log.isDebugEnabled()) { log.debug("Response Message : " + response); } } catch (AxisFault axisFault) { log.error(axisFault.getMessage()); throw new AxisFault("AxisFault while getting response :" + axisFault.getMessage(), axisFault); } Assert.assertNotNull(response); return response; } //one way communication public void sendRobust(OMElement payload, String endPointReference, String operation) throws AxisFault { ServiceClient sender; Options options; if (log.isDebugEnabled()) { log.info("Service Endpoint : " + endPointReference); log.info("Service Operation : " + operation); log.debug("Payload : " + payload); } try { sender = new ServiceClient(); options = new Options(); options.setTo(new EndpointReference(endPointReference)); options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); options.setAction("urn:" + operation); sender.setOptions(options); sender.sendRobust(payload); } catch (AxisFault axisFault) { log.error(axisFault.getMessage()); throw new AxisFault("AxisFault while getting response :" + axisFault.getMessage(), axisFault); } } //one way communication public void fireAndForget(OMElement payload, String endPointReference, String operation) throws AxisFault { ServiceClient sender; Options options; if (log.isDebugEnabled()) { log.info("Service Endpoint : " + endPointReference); log.info("Service Operation : " + operation); log.debug("Payload : " + payload); } try { sender = new ServiceClient(); options = new Options(); options.setTo(new EndpointReference(endPointReference)); options.setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED, Boolean.FALSE); options.setAction("urn:" + operation); sender.setOptions(options); sender.fireAndForget(payload); } catch (AxisFault axisFault) { log.error(axisFault.getMessage()); throw new AxisFault("AxisFault while getting response :" + axisFault.getMessage(), axisFault); } } }