⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serviceclientutil.java

📁 bpel执行引擎用来执行bpel业务流程
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements.  See the NOTICE file * distributed with this work for additional information * regarding copyright ownership.  The ASF 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.apache.ode.axis2.service;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axiom.om.OMNamespace;import org.apache.axis2.AxisFault;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.client.ServiceClient;import org.apache.ode.utils.Namespaces;import javax.xml.namespace.QName;/** * Client utilities that can be used to invoke easily the deployment * and management services with Axis2. */public class ServiceClientUtil {    /**     * Sends the provided message to an Axis2 deployed service.     * @param msg the message OMElement that will be included in the body     * @param url to send the message to     * @return the response message     * @throws AxisFault when a problem occured during the call     */    public OMElement send(OMElement msg, String url) throws AxisFault {        return send(msg, url, Options.DEFAULT_TIMEOUT_MILLISECONDS);    }    /**     * Sends the provided message to an Axis2 deployed service allowing to set a     * specific timeout (in ms).     * @param msg the message OMElement that will be included in the body     * @param url to send the message to     * @param timeout in milliseconds     * @return the response message     * @throws AxisFault when a problem occured during the call     */    public OMElement send(OMElement msg, String url, long timeout) throws AxisFault {        Options options = new Options();        EndpointReference target = new EndpointReference(url);        options.setTo(target);        options.setTimeOutInMilliSeconds(timeout);        ServiceClient serviceClient = new ServiceClient();        serviceClient.setOptions(options);        return serviceClient.sendReceive(msg);    }    /**     * Builds a message for the deployment and management API using simple parameter     * passing. Example: <br/>     * <code>     * buildMessage("listProcesses", new String[] {"filter", "orderKeys"},     *          new String[] {"name=DynPartnerResponder namespace=http://ode/bpel/responder " +     *                  "deployed>=" + notSoLongAgoStr, ""});     * </code>     * @param operation to call     * @param params list of the parameters for the operation as defined in the WSDL document     * @param values of the parameters     * @return the message to send     */    public OMElement buildMessage(String operation, String[] params, Object[] values) {        OMFactory _factory = OMAbstractFactory.getOMFactory();        OMNamespace pmns = _factory.createOMNamespace(Namespaces.ODE_PMAPI, "pmapi");        OMElement root = _factory.createOMElement(operation, pmns);        for (int m = 0; m < params.length; m++) {            OMElement omelmt = _factory.createOMElement(params[m], null);            if (values[m] == null)                omelmt.setText("");            else if (values[m] instanceof String)                omelmt.setText((String) values[m]);            else if (values[m] instanceof QName)                omelmt.setText((QName) values[m]);            else if (values[m] instanceof OMElement)                omelmt.addChild((OMElement) values[m]);            else if (values[m] instanceof Object[]) {                Object[] subarr = (Object[]) values[m];                String elmtName = (String) subarr[0];                for (int p = 1; p < subarr.length; p++) {                    OMElement omarrelmt = _factory.createOMElement(elmtName, null);                    omarrelmt.setText(subarr[p].toString());                    omelmt.addChild(omarrelmt);                }            } else throw new UnsupportedOperationException("Type " + values[m].getClass() + "isn't supported as " +                    "a parameter type (only String and QName are).");            root.addChild(omelmt);        }        return root;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -