You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2005/09/01 09:23:29 UTC
svn commit: r265666 - in
/webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management:
manager/JMXAdmin.java manager/JMXManager.java mbeans/Axis2Manager.java
Author: deepal
Date: Thu Sep 1 00:23:21 2005
New Revision: 265666
URL: http://svn.apache.org/viewcvs?rev=265666&view=rev
Log:
applying Chathuras' patch on GOC
Modified:
webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java
webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java
webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/mbeans/Axis2Manager.java
Modified: webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java?rev=265666&r1=265665&r2=265666&view=diff
==============================================================================
--- webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java (original)
+++ webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXAdmin.java Thu Sep 1 00:23:21 2005
@@ -1,9 +1,15 @@
package org.apache.axis2.management.manager;
import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.engine.AxisFault;
+import org.apache.axis2.AxisFault;
import org.apache.axis2.management.mbeans.Axis2Manager;
+/**
+ * JMXAdmin creates necessary MBeans and registers them using the JMXManager. It is assumed that all
+ * MBean registrations will be done in this class. Currently Axis2 has only a single MBean to wrap
+ * its management functionality.
+ *
+ */
public class JMXAdmin{
/**
@@ -17,11 +23,11 @@
try{
// Create MBeans
- String axis2ManagerName = "Axis2:type=management.Manager,index=1";
+ String axis2ManagerName = "Axis2:type=management.Manager";
Axis2Manager axis2Manager = new Axis2Manager(configContext.getAxisConfiguration());
// Register MBeans using JMXManager
- JMXManagerR jmxManager = JMXManagerR.getJMXManagerR();
+ JMXManager jmxManager = JMXManager.getJMXManager();
jmxManager.registerMBean(axis2Manager, axis2ManagerName);
@@ -31,4 +37,4 @@
}
-}
\ No newline at end of file
+}
Modified: webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java?rev=265666&r1=265665&r2=265666&view=diff
==============================================================================
--- webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java (original)
+++ webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/manager/JMXManager.java Thu Sep 1 00:23:21 2005
@@ -1,26 +1,37 @@
package org.apache.axis2.management.manager;
-import org.apache.axis2.engine.AxisFault;
+import org.apache.axis2.AxisFault;
import java.rmi.registry.LocateRegistry;
-import org.apache.commons.modeler.Registry;
+import java.util.Map;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.ObjectName;
-import javax.management.remote.JMXConnectorServer;
-import javax.management.remote.JMXConnectorServerFactory;
-import javax.management.remote.JMXServiceURL;
+import java.lang.reflect.Method;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * JMXManager manages everything related to registering and publishing MBeans. It is not aware about
+ * the MBeans it is going to publish. Instead it provides a set of methods to register and publish any
+ * object as an MBean. Currently only JMXAdmin uses this to publish MBeans. But this can be used by any module
+ * to publish objects for management. This is a singleton class and the users should use the "getJMXManager"
+ * factory method to obtain an instance of this.
+ *
+ */
public class JMXManager{
- private Registry registry;
private static JMXManager jmxManager = null;
- private MBeanServer mbs = null;
-
- JMXConnectorServer cs;
- public static JMXManager getJMXManager(){
+ private Class registryClass = null;
+ private Object registry = null;
+ private Method registerComponent = null;
+
+ /**
+ * This is a factory method to create a JMXManager. Only one JMXManager instance is allowed.
+ *
+ * @throws AxisFault
+ */
+ public static JMXManager getJMXManager() throws AxisFault{
if(jmxManager != null){
return jmxManager;
@@ -32,77 +43,138 @@
}
- private JMXManager(){
+
+ /**
+ * Initializes the modeler and publishes the MBeanServer in RMI.
+ *
+ * @throws AxisFault
+ */
+ private JMXManager() throws AxisFault{
try{
- initMBeanServer();
+ initModeler();
publishRMI();
}catch(Exception e){
+ throw AxisFault.makeFault(e);
}
- }
-
-
- public void startMBeanServer() throws AxisFault{
-
-
- try{
- //initMBeans();
- }catch(Exception e){
- throw new AxisFault(e.getMessage());
- }
}
+ /**
+ * This method initializes the modeler registry. An MBeanServer is created if it was not alrady
+ * created.
+ *
+ * @throws AxisFault
+ */
+ public boolean initModeler() throws Exception{
- public void initModeler() throws Exception{
-
- Registry registry = Registry.getRegistry(null, null);
- mbs = registry.getMBeanServer();
-
- }
-
+ try {
+ registryClass = Class.forName("org.apache.commons.modeler.Registry");
+ } catch (ClassNotFoundException e) {
+ registry = null;
+ return false;
+ }
- public void registerModelerMBeans(Object mbean, String mbeanName) throws Exception{
+ try {
+ Class[] getRegistryArgs = new Class[]{Object.class, Object.class,};
+ Method getRegistry = registryClass.getMethod("getRegistry", getRegistryArgs);
+ Object[] getRegistryOptions = new Object[]{null, null};
+ registry = getRegistry.invoke(null, getRegistryOptions);
+
+ Class[] registerComponentArgs = new Class[]{Object.class, String.class, String.class};
+ registerComponent = registryClass.getMethod("registerComponent", registerComponentArgs);
+
+ } catch (IllegalAccessException e) {
+ throw e;
+ } catch (IllegalArgumentException e) {
+ throw e;
+ } catch (InvocationTargetException e) {
+ throw e;
+ } catch (NoSuchMethodException e) {
+ throw e;
+ }
- registry.registerComponent(mbean, mbeanName, "Axis2Manager");
+ return true;
}
- private void initMBeanServer() throws Exception{
-
- // try to find existing MBeanServers. If there are no MBeanServers create a new one for Axis2
- if (MBeanServerFactory.findMBeanServer(null).size() > 0) {
- mbs = (MBeanServer) MBeanServerFactory.findMBeanServer(null).get(0);
+ /**
+ * This method is used to register MBeans. It registers any object provided to it as an MBean.
+ * All public fields and methods of the object will be exposed for management.
+ *
+ * @param mbean
+ * @param mbeanName
+ * @throws AxisFault
+ */
+ public boolean registerMBean(Object mbean, String mbeanName) throws Exception{
+
+ String context = "Axis2";
+
+ if (registry != null) {
+ Object args[] = new Object[]{mbean, mbeanName, context};
+ try {
+ registerComponent.invoke(registry, args);
+ } catch (IllegalAccessException e) {
+ return false;
+ } catch (IllegalArgumentException e) {
+ return false;
+ } catch (InvocationTargetException e) {
+ return false;
+ }
+ return true;
} else {
- mbs = MBeanServerFactory.createMBeanServer();
+ return false;
}
-
- }
+ }
- public void registerMBean(Object mbean, String mbeanName) throws Exception{
- ObjectName mbeanObjectName = ObjectName.getInstance(mbeanName);
- mbs.registerMBean(mbean, mbeanObjectName);
- }
+ /**
+ * Publishes the MBeanServer in RMI. Currently this method is called in the constructor, so that the
+ * MBeanServer is always published. But it is yet to be decided whether to make this optional. In such
+ * case JMXAdmin admin may call this, if it is activated by the adminstrator.
+ *
+ * @throws AxisFault
+ */
+ public void publishRMI() throws Exception{
+ java.rmi.registry.Registry reg=null; // RMI registry
- public void publishRMI() throws Exception{
+ // create RMI registry on port 9995
+ try {
+ if( reg==null )
+ reg=LocateRegistry.createRegistry(9995);
+ } catch(Exception e) {
+ throw new AxisFault(e.getMessage());
+ }
+
+ // Retreive the MBeanServer used by the modeler
+ Method getMBeanServer = registryClass.getMethod("getMBeanServer", null);
+ Object mbs = getMBeanServer.invoke(registry, null);
+
+ // create an JMXServiceURL object with the service URL
+ Class jmxServiceURLClass = Class.forName("javax.management.remote.JMXServiceURL");
+ Class[] constructorArgs = new Class[]{String.class};
+ Constructor jmxServiceURLConstructor = jmxServiceURLClass.getConstructor(constructorArgs);
+
+ String serviceURL = "service:jmx:rmi:///jndi/rmi://localhost:9995/axis2";
+ Object jmxServiceURL = jmxServiceURLConstructor.newInstance(new String[]{serviceURL});
+
+ // Create and start a JMXConnector server
+ Class mbeanServerClass = Class.forName("javax.management.MBeanServer");
+ Class jmxConnectorServerFactoryClass = Class.forName("javax.management.remote.JMXConnectorServerFactory");
+ Class[] newJMXConnectorServerArgsTypes = new Class[]{jmxServiceURLClass, Map.class, mbeanServerClass};
+ Method newJMXConnectorServer = jmxConnectorServerFactoryClass.getMethod("newJMXConnectorServer", newJMXConnectorServerArgsTypes);
+
+ Object[] newJMXConnectorServerArgs = {jmxServiceURL, null, mbs};
+ Object jmxConnectorServer = newJMXConnectorServer.invoke(null, newJMXConnectorServerArgs);
+
+ Class jmxConnectorServerClass = Class.forName("javax.management.remote.JMXConnectorServer");
+ Method start = jmxConnectorServerClass.getMethod("start", null);
+ start.invoke(jmxConnectorServer, null);
- // RMI registry
- java.rmi.registry.Registry reg=null;
+ }
- try {
- if( reg==null )
- reg=LocateRegistry.createRegistry(9995);
- } catch(Exception e) {
- throw new AxisFault(e.getMessage());
- }
-
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9995/axis2");
- cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
- cs.start();
- }
-}
\ No newline at end of file
+}
Modified: webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/mbeans/Axis2Manager.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/mbeans/Axis2Manager.java?rev=265666&r1=265665&r2=265666&view=diff
==============================================================================
--- webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/mbeans/Axis2Manager.java (original)
+++ webservices/axis2/trunk/archive/java/scratch/jmx-front/src/org/apache/axis2/management/mbeans/Axis2Manager.java Thu Sep 1 00:23:21 2005
@@ -6,19 +6,325 @@
import org.apache.axis2.description.ModuleDescription;
import org.apache.axis2.description.OperationDescription;
import org.apache.axis2.engine.Phase;
-import org.apache.axis2.engine.AxisFault;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
+
+import org.apache.wsdl.impl.WSDLServiceImpl;
import javax.xml.namespace.QName;
import java.util.*;
-public class Axis2Manager implements Axis2ManagerMBean{
+public class Axis2Manager{
private AxisConfiguration axisConfig;
+
public Axis2Manager(AxisConfiguration axisConfig){
this.axisConfig = axisConfig;
}
+
+ public String[] getGlobalParameters(){
+
+ String[] paramters = null;
+
+ try{
+ ArrayList paramList = axisConfig.getParameters();
+ paramters = new String[paramList.size()];
+
+ for (int i = 0; i < paramList.size(); i++) {
+ Parameter parameter = (Parameter)paramList.get(i);
+ paramters[i] = parameter.getName() + ":" + parameter.getValue();
+ }
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return paramters;
+ }
+
+
+ public String editGlobalParameter(String name, String value) {
+
+ String info = "";
+
+ try{
+ Parameter parameter = axisConfig.getParameter(name);
+ if(parameter == null)
+ throw new Exception("Parameter: " + name + " not found.");
+
+ parameter.setValue(value);
+ info = "Parameter changed successfully.";
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String[] getModuleParameters(String moduleName){
+
+ String[] paramters = null;
+
+ try{
+ ModuleDescription moduleDesc = axisConfig.getModule(new QName(moduleName));
+ ArrayList paramList = moduleDesc.getParameters();
+ paramters = new String[paramList.size()];
+
+ for (int i = 0; i < paramList.size(); i++) {
+ Parameter parameter = (Parameter)paramList.get(i);
+ paramters[i] = parameter.getName() + ":" + parameter.getValue();
+ }
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return paramters;
+ }
+
+
+ public String editModuleParameter(String moduleName, String parameterName, String value) {
+
+ String info = "";
+
+ try{
+
+ ModuleDescription moduleDesc = axisConfig.getModule(new QName(moduleName));
+ Parameter parameter = moduleDesc.getParameter(parameterName);
+ if(parameter == null)
+ throw new Exception("Parameter: " + parameterName + " not found.");
+
+ parameter.setValue(value);
+ info = "Paramter changed successfully.";
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String[] getTransportInParameters(String transportInName){
+
+ String[] paramters = null;
+
+ try{
+ TransportInDescription transportInDesc = axisConfig.getTransportIn(new QName(transportInName));
+ ArrayList paramList = transportInDesc.getParameters();
+ paramters = new String[paramList.size()];
+
+ for (int i = 0; i < paramList.size(); i++) {
+ Parameter parameter = (Parameter)paramList.get(i);
+ paramters[i] = parameter.getName() + ":" + parameter.getValue();
+ }
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return paramters;
+ }
+
+
+ public String editTransportInParameter(String transportInName, String parameterName, String value) {
+
+ String info = "";
+
+ try{
+
+ TransportInDescription transportInDesc = axisConfig.getTransportIn(new QName(transportInName));
+ Parameter parameter = transportInDesc.getParameter(parameterName);
+ if(parameter == null)
+ throw new Exception("Parameter: " + parameterName + " not found.");
+
+ parameter.setValue(value);
+ info = "Paramter changed successfully.";
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String[] getTransportOutParameters(String transportOutName){
+
+ String[] paramters = null;
+
+ try{
+ TransportOutDescription transportOutDesc = axisConfig.getTransportOut(new QName(transportOutName));
+ ArrayList paramList = transportOutDesc.getParameters();
+ paramters = new String[paramList.size()];
+
+ for (int i = 0; i < paramList.size(); i++) {
+ Parameter parameter = (Parameter)paramList.get(i);
+ paramters[i] = parameter.getName() + ":" + parameter.getValue();
+ }
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return paramters;
+ }
+
+
+ public String editTransportOutParameter(String transportOutName, String parameterName, String value) {
+
+ String info = "";
+
+ try{
+
+ TransportOutDescription transportOutDesc = axisConfig.getTransportOut(new QName(transportOutName));
+ Parameter parameter = transportOutDesc.getParameter(parameterName);
+ if(parameter == null)
+ throw new Exception("Parameter: " + parameterName + " not found.");
+
+ parameter.setValue(value);
+ info = "Paramter changed successfully.";
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String[] getServiceParameters(String serviceName){
+
+ String[] paramters = null;
+
+ try{
+ ServiceDescription serviceDesc = axisConfig.getService(new QName(serviceName));
+ ArrayList paramList = serviceDesc.getParameters();
+ paramters = new String[paramList.size()];
+
+ for (int i = 0; i < paramList.size(); i++) {
+ Parameter parameter = (Parameter)paramList.get(i);
+ paramters[i] = parameter.getName() + ":" + parameter.getValue();
+ }
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return paramters;
+ }
+
+
+ public String editServiceParameter(String serviceName, String parameterName, String value) {
+
+ String info = "";
+
+ try{
+
+ ServiceDescription serviceDesc = axisConfig.getService(new QName(serviceName));
+ Parameter parameter = serviceDesc.getParameter(parameterName);
+ if(parameter == null)
+ throw new Exception("Parameter: " + parameterName + " not found.");
+
+ parameter.setValue(value);
+ info = "Paramter changed successfully.";
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String[] getOperationParameters(String serviceName, String operationName){
+
+ String[] paramters = null;
+
+ try{
+ ServiceDescription serviceDesc = axisConfig.getService(new QName(serviceName));
+ OperationDescription operationDesc = serviceDesc.getOperation(new QName(operationName));
+ ArrayList paramList = operationDesc.getParameters();
+ paramters = new String[paramList.size()];
+
+ for (int i = 0; i < paramList.size(); i++) {
+ Parameter parameter = (Parameter)paramList.get(i);
+ paramters[i] = parameter.getName() + ":" + parameter.getValue();
+ }
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+ return paramters;
+ }
+
+
+ public String editOperationParameter(String serviceName, String operationName, String parameterName, String value) {
+
+ String info = "";
+
+ try{
+
+ ServiceDescription serviceDesc = axisConfig.getService(new QName(serviceName));
+ OperationDescription operationDesc = serviceDesc.getOperation(new QName(operationName));
+ Parameter parameter = operationDesc.getParameter(parameterName);
+ if(parameter == null)
+ throw new Exception("Parameter: " + parameterName + " not found.");
+
+ parameter.setValue(value);
+ info = "Parameter changed successfully.";
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String turnoffOperation(String serviceName, String operationName){
+
+ String info = "";
+
+ try{
+
+ ServiceDescription serviceDesc = axisConfig.getService(new QName(serviceName));
+ OperationDescription operationDesc = serviceDesc.getOperation(operationName);
+ serviceDesc.removeOperation(operationDesc);
+
+ info = "operation: " + operationName + " was turned off from the service: " + serviceName;
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String removeService(String serviceName){
+
+ String info = "";
+
+ try{
+
+ axisConfig.removeService(new QName(serviceName));
+ info = "Service: " + serviceName + " removed successfully.";
+
+ }catch(Exception e){
+ info = e.getMessage();
+ }
+
+ return info;
+ }
+
+
public String[] getServices(){
String[] services = null;
@@ -94,6 +400,58 @@
}
+ public String[] getTransportIns(){
+
+ String[] transportIns = null;
+ ArrayList transportInList = new ArrayList();
+
+ // get the transportIn list
+ HashMap transportInMap = ((AxisConfigurationImpl)axisConfig).getTransportsIn();
+ if(transportInMap!=null && !transportInMap.isEmpty()){
+ Collection transportInCollection = transportInMap.values();
+
+ transportIns = new String[transportInCollection.size()];
+ int i=0;
+ for(Iterator iterator=transportInCollection.iterator(); iterator.hasNext();){
+ TransportInDescription axisTransportIn = (TransportInDescription)iterator.next();
+ String transportInName = axisTransportIn.getName().getLocalPart();
+
+ transportIns[i] = transportInName;
+ i++;
+ }
+
+ }
+
+ return transportIns;
+ }
+
+
+ public String[] getTransportOuts(){
+
+ String[] transportOuts = null;
+ ArrayList transportOutList = new ArrayList();
+
+ // get the transportOut list
+ HashMap transportOutMap = ((AxisConfigurationImpl)axisConfig).getTransportsOut();
+ if(transportOutMap!=null && !transportOutMap.isEmpty()){
+ Collection transportOutCollection = transportOutMap.values();
+
+ transportOuts = new String[transportOutCollection.size()];
+ int i=0;
+ for(Iterator iterator=transportOutCollection.iterator(); iterator.hasNext();){
+ TransportOutDescription axisTransportOut = (TransportOutDescription)iterator.next();
+ String transportOutName = axisTransportOut.getName().getLocalPart();
+
+ transportOuts[i] = transportOutName;
+ i++;
+ }
+
+ }
+
+ return transportOuts;
+ }
+
+
public String[] getFaultyModules(){
String[] faultyModules = null;
@@ -186,7 +544,23 @@
info = "Module: " + moduleName + " globally enagaged successfully.";
}
catch(AxisFault axisFault){
- info = "Module: " + moduleName + " failed to engage globally.";
+ info = "Module: " + moduleName + " failed to engage globally.\n" + axisFault.getMessage();
+ }
+
+ return info;
+ }
+
+
+ public String disengageModuleGlobally(String moduleName){
+
+ String info = "";
+
+ try{
+ axisConfig.disengageModule(new QName(moduleName));
+ info = "Module: " + moduleName + " globally disenagaged successfully.";
+ }
+ catch(AxisFault axisFault){
+ info = "Module: " + moduleName + " failed to disengage globally.\n" + axisFault.getMessage();
}
return info;
@@ -201,12 +575,12 @@
try {
- axisConfig.getService(new QName(serviceName)).engageModule(axisConfig.getModule(new QName(moduleName)));
+ axisConfig.getService(new QName(serviceName)).engageModule(axisConfig.getModule(new QName(moduleName)), axisConfig);
info = "Module " + moduleName + " is successfully engaged to the service " + serviceName;
} catch (AxisFault axisFault) {
- info = "Failed to engage the module " + moduleName + " to the service " + serviceName;
+ info = "Failed to engage the module " + moduleName + " to the service " + serviceName + "\n" + axisFault.getMessage();;
}
}
@@ -214,6 +588,27 @@
}
+ public String disengageModuleFromService(String moduleName, String serviceName){
+
+ String info = "";
+
+ if ( moduleName != null && serviceName != null) {
+
+ try {
+
+ axisConfig.getService(new QName(serviceName)).disengageModule(axisConfig.getModule(new QName(moduleName)));
+ info = "Module " + moduleName + " is successfully disengaged from the service " + serviceName;
+
+ } catch (AxisFault axisFault) {
+
+ info = "Failed to disengage the module " + moduleName + " from the service " + serviceName + "\n" + axisFault.getMessage();
+ }
+ }
+
+ return info;
+ }
+
+
public String engageModuleToOperation(String moduleName, String serviceName, String operationName){
String info = "";
@@ -226,14 +621,32 @@
info = moduleName + " module engaged to the operation Successfully";
} catch (AxisFault axisFault) {
- info = info = "Failed to engage the module " + moduleName + " to the operation " + operationName;
+ info = info = "Failed to engage the module " + moduleName + " to the operation " + operationName + "\n" + axisFault.getMessage();
}
}
return info;
-
}
+ public String disengageModuleFromOperation(String moduleName, String serviceName, String operationName){
+
+ String info = "";
+
+ if ( moduleName != null && serviceName != null && operationName != null) {
+ try {
+ OperationDescription operation = axisConfig.getService(new QName(serviceName)).getOperation(new QName(operationName));
+ operation.disengageModule(axisConfig.getModule(new QName(moduleName)));
+
+ info = moduleName + " module disengaged from the operation Successfully";
+
+ } catch (AxisFault axisFault) {
+ info = info = "Failed to disengage the module " + moduleName + " from the operation " + operationName + "\n" + axisFault.getMessage();
+ }
+ }
+
+ return info;
+ }
+
-}
\ No newline at end of file
+}