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 he...@apache.org on 2004/12/20 11:22:42 UTC
svn commit: r122836 - in webservices/axis/trunk/java/dev/scratch/prototype2/src: java/org/apache/axis/engine java/org/apache/axis/impl/engine java/org/apache/axis/phaseresolver test/org/apache/axis/deployment test/org/apache/axis/engine
Author: hemapani
Date: Mon Dec 20 02:22:39 2004
New Revision: 122836
URL: http://svn.apache.org/viewcvs?view=rev&rev=122836
Log:
put the invocation of service and sender to the ExecutionChain as we discuss in the chat
Modified:
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/AxisEngine.java Mon Dec 20 02:22:39 2004
@@ -20,7 +20,6 @@
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.AxisService;
import org.apache.axis.description.AxisTransport;
-import org.apache.axis.impl.handlers.OpNameFinder;
import org.apache.axis.om.OMFactory;
import org.apache.axis.om.SOAPEnvelope;
import org.apache.commons.logging.Log;
@@ -29,8 +28,6 @@
/**
* There is one engine for the Server and the Client. the send() and receive()
* Methods are the basic operations the Sync, Async messageing are build on top.
- * Two methods will find and execute the <code>CommonExecuter</code>'s Transport,
- * Global,Service.
*/
public class AxisEngine {
private Log log = LogFactory.getLog(getClass());
@@ -48,6 +45,7 @@
public void receive(MessageContext context) throws AxisFault {
try {
+ //let us always start with a fresh EC
context.setExecutionChain(new ExecutionChain());
ExecutionChain chain = context.getExecutionChain();
@@ -68,23 +66,11 @@
//Start rolling the Service Handlers will,be added by the Dispatcher
chain.invoke(context);
- //TODO should we done inside the Dispatcher !!
- if(context.isServerSide()){
- OpNameFinder opNameFinder = new OpNameFinder();
- opNameFinder.invoke(context);
- Receiver reciver = ReceiverLocator.locateReceiver(context);
- reciver.invoke(context);
- }
} catch (AxisFault e) {
handleFault(context, e);
}
}
- private void sendTheMessage(MessageContext msgCtx) throws AxisFault {
- TransportSender ts =
- TransportSenderLocator.locateTransPortSender(msgCtx);
- ts.invoke(msgCtx);
- }
private void handleFault(
MessageContext context,
AxisFault e)
@@ -93,15 +79,17 @@
if(serverSide && !context.isProcessingFault()){
AxisService service = context.getService();
context.setProcessingFault(true);
+
+ //create a SOAP envelope with the Fault
SOAPEnvelope envelope =
OMFactory.newInstance().getDefaultEnvelope();
//TODO do we need to set old Headers back?
envelope.getBody().addFault(e);
context.setEnvelope(envelope);
- sendTheMessage(context);
-
+ //send the error
executeOutFlow(context,EngineRegistry.FAULTFLOW);
}else if (!serverSide){
+ //if at the client side throw the exception
throw e;
}else{
//TODO log and exit
@@ -112,31 +100,33 @@
private void executeOutFlow(MessageContext context,int flow) throws AxisFault{
try {
+ context.setExecutionChain(new ExecutionChain());
+ ExecutionChain chain = context.getExecutionChain();
+
AxisService service = context.getService();
if (service != null) {
- context.setExecutionChain(new ExecutionChain());
- ExecutionChain chain = context.getExecutionChain();
//what are we suppose to do in the client side
//how the client side handlers are deployed ??? this is a hack and no client side handlers
chain.addPhases(service.getPhases(flow));
-
- //Add the phases that are are at Global scope
- AxisGlobal global = context.getGlobalContext().getRegistry().getGlobal();
- chain.addPhases(global.getPhases(flow));
-
- // Receiving is always a matter of running the transport handlers first
- AxisTransport transport = context.getTransport();
- if (transport != null) {
- chain.addPhases(transport.getPhases(flow));
- }
- chain.invoke(context);
}else{
- if(context.isServerSide() && !context.isInfaultFlow()){
+ if(context.isServerSide() && !context.isProcessingFault()){
throw new AxisFault("in Server Side there must be service object");
}
+ }
+ //Add the phases that are are at Global scope
+ AxisGlobal global = context.getGlobalContext().getRegistry().getGlobal();
+ chain.addPhases(global.getPhases(flow));
+ // Receiving is always a matter of running the transport handlers first
+ AxisTransport transport = context.getTransport();
+ if (transport != null) {
+ chain.addPhases(transport.getPhases(flow));
}
- sendTheMessage(context);
+ Phase sendPhase = new Phase(Phase.SENDING_PHASE);
+ sendPhase.addHandler(TransportSenderLocator.locateTransPortSender(context));
+ chain.addPhase(sendPhase);
+ //startet rolling
+ chain.invoke(context);
} catch (AxisFault error) {
handleFault(context, error);
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Dispatcher.java Mon Dec 20 02:22:39 2004
@@ -19,7 +19,10 @@
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.AxisService;
import org.apache.axis.impl.handlers.AbstractHandler;
-
+import org.apache.axis.impl.handlers.OpNameFinder;
+/**
+ * this find the service to invoke
+ */
import javax.xml.namespace.QName;
public class Dispatcher extends AbstractHandler implements Handler {
@@ -60,6 +63,11 @@
//let add the Handlers
ExecutionChain chain = msgctx.getExecutionChain();
chain.addPhases(service.getPhases(EngineRegistry.INFLOW));
+ //add invoke Phase
+ Phase invokePhase = new Phase(Phase.SERVICE_INVOCATION);
+ invokePhase.addHandler(new OpNameFinder());
+ invokePhase.addHandler(ReceiverLocator.locateReceiver(msgctx));
+ chain.addPhase(invokePhase);
} else {
throw new AxisFault("Service Not found");
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/EngineRegistry.java Mon Dec 20 02:22:39 2004
@@ -17,13 +17,15 @@
package org.apache.axis.engine;
+import java.util.ArrayList;
+
+import javax.xml.namespace.QName;
+
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.AxisModule;
import org.apache.axis.description.AxisService;
import org.apache.axis.description.AxisTransport;
-import javax.xml.namespace.QName;
-
/**
* The palce where all the Globel states of Axis is kept.
* All the Global states kept in the <code>EngineRegistry</code> and all the
@@ -36,16 +38,22 @@
public static final int OUTFLOW = 10004;
public static final int FAULTFLOW = 10005;
-
public AxisGlobal getGlobal()throws AxisFault;
public AxisService getService(QName name)throws AxisFault;
public void addService(AxisService service)throws AxisFault;
public void removeService(QName name)throws AxisFault;
+ /**
+ * Modules is read only as they can not deployed while runing
+ */
public AxisModule getModule(QName name)throws AxisFault;
public void addMdoule(AxisModule module)throws AxisFault;
public AxisTransport getTransport(QName name) throws AxisFault;
public void addTransport(AxisTransport transport) throws AxisFault;
+ /**
+ * Ordred list of phases
+ */
+ public ArrayList getPhases();
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/ExecutionChain.java Mon Dec 20 02:22:39 2004
@@ -21,8 +21,13 @@
import java.util.HashMap;
import java.util.Stack;
+import javax.xml.namespace.QName;
+
/**
- * <p>This is the ordered Collection of Phases as specified by the Server.xml file.</p>
+ * <p> This is the ordered Collection of Phases as specified by the Server.xml file.
+ * this has the execution logic as well. If something goes wrong inside the
+ * Execution Chain then the exeution chain itself revoke them.
+ * </p>
*/
public class ExecutionChain {
private HashMap phases;
@@ -32,6 +37,7 @@
phases = new HashMap();
executionList = new ArrayList();
}
+
public void addPhase(Phase phase) {
phases.put(phase.getPhaseName(), phase);
executionList.add(phase);
@@ -45,24 +51,9 @@
}
}
}
-
-
- public void addHandlerDirectly(Handler directHandler, int index) {
- phases.put(directHandler.getName(), directHandler);
- executionList.add(index, directHandler);
- }
-
- public void addHandler(String phaseName, Handler handler, int index) {
- Phase phase = (Phase) phases.get(phaseName);
- phase.addHandler(handler, index);
- }
-
-
- public void addHandler(String phaseName, Handler handler) throws AxisFault {
- Phase phase = (Phase) phases.get(phaseName);
- if (phase == null)
- throw new AxisFault("Can't find the Phase " + phaseName);
- phase.addHandler(handler);
+
+ public Phase getPhase(QName name){
+ return (Phase)phases.get(name);
}
public void invoke(MessageContext msgctx) throws AxisFault {
@@ -81,15 +72,6 @@
handler.revoke(msgctx);
}
throw AxisFault.makeFault(e);
- }
- }
-
- public void revoke(MessageContext msgctx) throws AxisFault {
- for (int i = executionList.size() - 1; i > -1; i--) {
- Phase phase = (Phase) executionList.get(i);
- if (phase != null) {
- phase.revoke(msgctx);
- }
}
}
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/engine/Phase.java Mon Dec 20 02:22:39 2004
@@ -27,6 +27,10 @@
* Should this exttends Hanlders?
*/
public class Phase extends AbstractHandler implements Handler {
+ public static final String DISPATCH_PHASE = "DispatchPhase";
+ public static final String SERVICE_INVOCATION = "ServiceInvocationPhase";
+ public static final String SENDING_PHASE = "SendPhase";
+
private String phaseName;
private ArrayList handlers;
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/impl/engine/EngineRegistryImpl.java Mon Dec 20 02:22:39 2004
@@ -15,6 +15,11 @@
*/
package org.apache.axis.impl.engine;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import javax.xml.namespace.QName;
+
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.AxisModule;
import org.apache.axis.description.AxisService;
@@ -22,17 +27,18 @@
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
-import javax.xml.namespace.QName;
-import java.util.HashMap;
+
public class EngineRegistryImpl implements EngineRegistry{
private HashMap modules = new HashMap();
private HashMap services = new HashMap();
private HashMap transports = new HashMap();
private AxisGlobal global;
+ private ArrayList phases;
public EngineRegistryImpl(AxisGlobal global){
this.global = global;
+ phases = new ArrayList();
}
public synchronized void addMdoule(AxisModule module) throws AxisFault {
@@ -66,4 +72,18 @@
public synchronized void addTransport(AxisTransport transport) throws AxisFault {
transports.put(transport.getName(),transport);
}
+ /**
+ * @return
+ */
+ public ArrayList getPhases() {
+ return phases;
+ }
+
+ /**
+ * @param list
+ */
+ public void setPhases(ArrayList list) {
+ phases = list;
+ }
+
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java Mon Dec 20 02:22:39 2004
@@ -1,5 +1,8 @@
package org.apache.axis.phaseresolver;
+import java.util.ArrayList;
+import java.util.Vector;
+
import org.apache.axis.deployment.DeploymentConstants;
import org.apache.axis.deployment.metadata.ServerMetaData;
import org.apache.axis.description.AxisGlobal;
@@ -10,9 +13,6 @@
import org.apache.axis.engine.Phase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import java.util.ArrayList;
-import java.util.Vector;
/**
* Copyright 2001-2004 The Apache Software Foundation.
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseMetaData.java Mon Dec 20 02:22:39 2004
@@ -1,8 +1,9 @@
package org.apache.axis.phaseresolver;
+import java.util.Vector;
+
import org.apache.axis.description.HandlerMetaData;
-import java.util.Vector;
/**
* Copyright 2001-2004 The Apache Software Foundation.
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java Mon Dec 20 02:22:39 2004
@@ -1,13 +1,14 @@
package org.apache.axis.phaseresolver;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+
import org.apache.axis.deployment.DeploymentEngine;
import org.apache.axis.deployment.metadata.ServerMetaData;
import org.apache.axis.description.*;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
-
-import javax.xml.namespace.QName;
-import java.util.Vector;
/**
* Copyright 2001-2004 The Apache Software Foundation.
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java Mon Dec 20 02:22:39 2004
@@ -1,11 +1,12 @@
package org.apache.axis.deployment;
+import javax.xml.stream.XMLStreamException;
+
import junit.framework.TestCase;
+
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.EngineRegistry;
import org.apache.axis.phaseresolver.PhaseException;
-
-import javax.xml.stream.XMLStreamException;
/**
* Copyright 2001-2004 The Apache Software Foundation.
Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java?view=diff&rev=122836&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java&r1=122835&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java&r2=122836
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/engine/EchoTest.java Mon Dec 20 02:22:39 2004
@@ -16,13 +16,9 @@
package org.apache.axis.engine;
//todo
-import java.net.URL;
-
import javax.xml.namespace.QName;
import org.apache.axis.AbstractTestCase;
-import org.apache.axis.client.Call;
-import org.apache.axis.client.CallBack;
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.AxisGlobal;
import org.apache.axis.description.AxisOperation;
@@ -33,9 +29,6 @@
import org.apache.axis.impl.description.SimpleAxisServiceImpl;
import org.apache.axis.impl.providers.SimpleJavaProvider;
import org.apache.axis.impl.transport.http.SimpleHTTPReceiver;
-import org.apache.axis.om.OMElement;
-import org.apache.axis.om.OMFactory;
-import org.apache.axis.om.OMNamespace;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;