You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by he...@apache.org on 2005/02/22 13:17:55 UTC
svn commit: r154836 - in webservices/axis/trunk/java/modules:
core/src/java/org/apache/axis/engine/ samples/src/java/interop/doclit/
samples/src/java/org/apache/axis/testUtils/
Author: hemapani
Date: Tue Feb 22 04:17:50 2005
New Revision: 154836
URL: http://svn.apache.org/viewcvs?view=rev&rev=154836
Log:
now the intreop test server interop with the Axis1.x
Modified:
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java
webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java
webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java
webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java
webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java
webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Dispatcher.java Tue Feb 22 04:17:50 2005
@@ -15,7 +15,8 @@
*/
package org.apache.axis.engine;
-import org.apache.axis.Constants;
+import javax.xml.namespace.QName;
+
import org.apache.axis.addressing.EndpointReference;
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.AxisOperation;
@@ -25,8 +26,6 @@
import org.apache.axis.handlers.OpNameFinder;
import org.apache.wsdl.WSDLService;
-import javax.xml.namespace.QName;
-
/**
* Class Dispatcher
*/
@@ -34,8 +33,7 @@
/**
* Field NAME
*/
- public static final QName NAME = new QName("http://axis.ws.apache.org",
- "Disapatcher");
+ public static final QName NAME = new QName("http://axis.ws.apache.org", "Disapatcher");
/**
* Constructor Dispatcher
@@ -54,51 +52,49 @@
if (msgctx.isServerSide()) {
EndpointReference toEPR = msgctx.getTo();
String filePart = toEPR.getAddress();
- String soapAction =
- (String) msgctx.getProperty(MessageContext.SOAP_ACTION);
+ String soapAction = (String) msgctx.getProperty(MessageContext.SOAP_ACTION);
+
+ QName operationName = null;
+ QName serviceName = null;
+
int index = filePart.lastIndexOf('/');
String serviceAndMethodStr = null;
if (index > 0) {
serviceAndMethodStr = filePart.substring(index + 1);
}
- if (serviceAndMethodStr == null) {
- serviceAndMethodStr = soapAction;
- }
- index = serviceAndMethodStr.lastIndexOf(
- Constants.METHOD_NAME_ESCAPE_CHARACTOR);
- QName serviceName = null;
- QName operationName = null;
- if (index > 0) {
- serviceName = new QName(serviceAndMethodStr.substring(0,
- index ));
- operationName = new QName(serviceAndMethodStr.substring(index
- + 1));
- } else {
+
+ if (WSDLService.STYLE_DOC.equals(msgctx.getMessageStyle())) {
+ if(serviceAndMethodStr != null){
+ serviceName = new QName(serviceAndMethodStr);
+ }
+ if(soapAction != null && soapAction.trim().length() > 0){
+ operationName = new QName(soapAction);
+ }
+ }else if (WSDLService.STYLE_RPC.equals(msgctx.getMessageStyle())) {
+ if(serviceAndMethodStr == null){
+ if(soapAction != null && soapAction.trim().length() > 0){
+ serviceAndMethodStr = soapAction;
+ }else{
+ throw new AxisFault("Noway to find the service, both URL and soapAcition missing");
+ }
+ }
serviceName = new QName(serviceAndMethodStr);
+ }else{
+ throw new AxisFault("Unknow style " + msgctx.getMessageStyle());
}
+
if (serviceName != null) {
- EngineRegistry registry =
- msgctx.getGlobalContext().getRegistry();
+ EngineRegistry registry = msgctx.getGlobalContext().getRegistry();
AxisService service = registry.getService(serviceName);
if (service != null) {
msgctx.setService(service);
msgctx.setMessageStyle(service.getStyle());
- if (!WSDLService.STYLE_RPC.equals(
- msgctx.getMessageStyle())) {
- if (operationName != null) {
- AxisOperation op =
- service.getOperation(operationName);
- if (op != null) {
- msgctx.setOperation(op);
- } else {
- throw new AxisFault("Operation not found "
- + operationName);
- }
- } else {
- throw new AxisFault("Operation Name not specifed");
- }
- }
-
+ if (operationName != null) {
+ AxisOperation op = service.getOperation(operationName);
+ if (op != null) {
+ msgctx.setOperation(op);
+ }
+ }
// let add the Handlers
ExecutionChain chain = msgctx.getExecutionChain();
chain.addPhases(service.getPhases(EngineRegistry.INFLOW));
@@ -106,12 +102,10 @@
// add invoke Phase
Phase invokePhase = new Phase(Phase.SERVICE_INVOCATION);
invokePhase.addHandler(new OpNameFinder());
- invokePhase.addHandler(
- ReceiverLocator.locateReceiver(msgctx));
+ invokePhase.addHandler(ReceiverLocator.locateReceiver(msgctx));
chain.addPhase(invokePhase);
} else {
- throw new AxisFault("Service " + serviceName
- + " is not found");
+ throw new AxisFault("Service " + serviceName + " is not found");
}
} else {
throw new AxisFault("Both the URI and SOAP_ACTION Is Null");
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java Tue Feb 22 04:17:50 2005
@@ -15,14 +15,15 @@
*/
package org.apache.axis.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;
import org.apache.axis.description.AxisTransport;
-
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.HashMap;
/**
* The palce where all the Global states of Axis is kept.
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java Tue Feb 22 04:17:50 2005
@@ -15,14 +15,15 @@
*/
package org.apache.axis.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;
import org.apache.axis.description.AxisTransport;
-
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.HashMap;
/**
* Class EngineRegistryImpl
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/ExecutionChain.java Tue Feb 22 04:17:50 2005
@@ -15,14 +15,15 @@
*/
package org.apache.axis.engine;
-import org.apache.axis.context.MessageContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Stack;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* <p> This is the ordered Collection of Phases as specified by the Server.xml file.
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Handler.java Tue Feb 22 04:17:50 2005
@@ -15,12 +15,13 @@
*/
package org.apache.axis.engine;
+import java.io.Serializable;
+
+import javax.xml.namespace.QName;
+
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.HandlerMetadata;
import org.apache.axis.description.Parameter;
-
-import javax.xml.namespace.QName;
-import java.io.Serializable;
/**
* Interface Handler
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Phase.java Tue Feb 22 04:17:50 2005
@@ -15,15 +15,16 @@
*/
package org.apache.axis.engine;
+import java.util.ArrayList;
+import java.util.Stack;
+
+import javax.xml.namespace.QName;
+
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.HandlerMetadata;
import org.apache.axis.handlers.AbstractHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Stack;
/**
* <p>This is Phase, a orderd collection of Handlers.
Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/Provider.java Tue Feb 22 04:17:50 2005
@@ -15,9 +15,9 @@
*/
package org.apache.axis.engine;
-import org.apache.axis.context.MessageContext;
-
import java.io.Serializable;
+
+import org.apache.axis.context.MessageContext;
/**
* This Provider is the workhorse who locate the implementation of the Web Service and
Modified: webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/InteropProvider.java Tue Feb 22 04:17:50 2005
@@ -18,6 +18,7 @@
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.AxisOperation;
+import org.apache.axis.description.AxisService;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.om.OMConstants;
import org.apache.axis.om.OMElement;
@@ -28,11 +29,12 @@
import org.apache.axis.testUtils.Encoder;
import org.apache.axis.testUtils.ObjectToOMBuilder;
import org.apache.axis.testUtils.SimpleJavaProvider;
-import org.apache.axis.testUtils.SimpleTypeEncoder;
import org.apache.axis.testUtils.SimpleTypeEncodingUtils;
import org.apache.wsdl.WSDLService;
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import java.lang.reflect.Method;
@@ -43,57 +45,37 @@
* Time: 3:10:05 PM
*/
public class InteropProvider extends SimpleJavaProvider {
-
- public Object[] deserializeParameters(MessageContext msgContext, Method method)
+ private int event;
+ public Object[] deserializeParameters(
+ MessageContext msgContext,
+ Method method,
+ XMLStreamReader xpp)
throws AxisFault {
- try {
- if(WSDLService.STYLE_DOC.equals(msgContext.getMessageStyle())){
- SOAPBody body = msgContext.getEnvelope().getBody();
- XMLStreamReader xpp = body.getPullParser(true);
- Class[] parms = method.getParameterTypes();
- Object[] objs = new Object[parms.length];
-
-
- int event = xpp.next();
- while (XMLStreamConstants.START_ELEMENT != event
- && XMLStreamConstants.END_ELEMENT != event) {
- event = xpp.next();
- }
-
- event = xpp.next();
- while (XMLStreamConstants.START_ELEMENT != event
- && XMLStreamConstants.END_ELEMENT != event) {
- event = xpp.next();
- }
- //now we are at the parameters element event
+ try {
+ Class[] parms = method.getParameterTypes();
+ Object[] objs = new Object[parms.length];
- if (XMLStreamConstants.END_ELEMENT == event) {
- return null;
+ if (XMLStreamConstants.END_ELEMENT == event) {
+ return null;
+ } else {
+ for (int i = 0; i < parms.length; i++) {
+ if (int.class.equals(parms[i])) {
+ objs[i] = new Integer(SimpleTypeEncodingUtils.deserializeInt(xpp));
+ } else if (String.class.equals(parms[i])) {
+ objs[i] = SimpleTypeEncodingUtils.deserializeString(xpp);
+ } else if (String[].class.equals(parms[i])) {
+ objs[i] = SimpleTypeEncodingUtils.deserializeStringArray(xpp);
+ } else if (SOAPStruct.class.equals(parms[i])) {
+ SOAPStructEncoder enc = new SOAPStructEncoder();
+ objs[i] = enc.deSerialize(xpp);
} else {
- for (int i = 0; i < parms.length; i++) {
- if (int.class.equals(parms[i])) {
- objs[i] = new Integer(SimpleTypeEncodingUtils.deserializeInt(xpp));
- } else if (String.class.equals(parms[i])) {
- objs[i] = SimpleTypeEncodingUtils.deserializeString(xpp);
- } else if (String[].class.equals(parms[i])) {
- objs[i] = SimpleTypeEncodingUtils.deserializeStringArray(xpp);
- } else if (SOAPStruct.class.equals(parms[i])) {
- SOAPStructEncoder enc = new SOAPStructEncoder();
- objs[i] = enc.deSerialize(xpp);
- } else {
- throw new UnsupportedOperationException("UnSupported type "+parms[i]);
- }
- }
- return objs;
-
+ throw new UnsupportedOperationException("UnSupported type " + parms[i]);
}
-
- }else{
- throw new AxisFault("this Service only supports doc-lit");
+ }
+ return objs;
+
}
-
-
-
+
} catch (Exception e) {
throw new AxisFault("Exception", e);
}
@@ -101,65 +83,122 @@
public MessageContext invoke(MessageContext msgContext) throws AxisFault {
try {
- //get the implementation class for the Web Service
- Object obj = getTheImplementationObject(msgContext);
+ if (WSDLService.STYLE_DOC.equals(msgContext.getMessageStyle())) {
+ SOAPBody body = msgContext.getEnvelope().getBody();
+ XMLStreamReader xpp = body.getPullParser(true);
- //find the WebService method
- Class ImplClass = obj.getClass();
- AxisOperation op = msgContext.getOperation();
- String methodName = op.getName().getLocalPart();
-
- Method[] methods = ImplClass.getMethods();
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].getName().equals(methodName)) {
- this.method = methods[i];
- break;
+ int event = xpp.next();
+ while (XMLStreamConstants.START_ELEMENT != event
+ && XMLStreamConstants.END_ELEMENT != event) {
+ event = xpp.next();
+ }
+ event = xpp.next();
+ while (XMLStreamConstants.START_ELEMENT != event
+ && XMLStreamConstants.END_ELEMENT != event) {
+ event = xpp.next();
+ }
+ //now we are at the parameters element event
+ String methodName = xpp.getLocalName();
+ int index = methodName.indexOf("Param");
+ QName operationName = null;
+ if (index <= 0) {
+ if ("echoVoid".equals(methodName)) {
+ operationName = new QName(methodName);
+ } else {
+ throw new AxisFault(
+ "first element in the Body should match methodName+Return the eleemntNam is"
+ + methodName);
+ }
+ }else{
+ operationName = new QName(methodName.substring(0, index));
}
- }
- //deserialize (XML-> java)
- Object[] parms = deserializeParameters(msgContext, method);
- //invoke the WebService
-
- WSDLInteropTestDocLitPortType benchmark = (WSDLInteropTestDocLitPortType) obj;
- Object result = null;
- if ("echoVoid".equals(methodName)) {
- benchmark.echoVoid();
- } else if ("echoString".equals(methodName)) {
- result = benchmark.echoString((String) parms[0]);
- } else if ("echoStringArray".equals(methodName)) {
- result = benchmark.echoStringArray((String[]) parms[0]);
- } else if ("echoStruct".equals(methodName)) {
- result = benchmark.echoStruct((SOAPStruct) parms[0]);
- }
- Encoder outobj = null;
- if(result != null){
- if (result instanceof String || result instanceof String[]) {
- outobj = new SimpleTypeEncoder(result);
- } else if (result instanceof SOAPStruct) {
- outobj = new SOAPStructEncoder((SOAPStruct) result);
- }
- }
- OMFactory fac = OMFactory.newInstance();
- SOAPEnvelope responseEnvelope = fac.getDefaultEnvelope();
- OMNamespace ns = fac.createOMNamespace("http://soapinterop.org/xsd", "res");
- OMElement returnelement = fac.createOMElement("echoStringReturn", ns);
- responseEnvelope.getBody().addChild(returnelement);
- if(result != null){
- returnelement.setBuilder(new ObjectToOMBuilder(returnelement, outobj));
- returnelement.declareNamespace(OMConstants.ARRAY_ITEM_NSURI, "arrays");
- returnelement.declareNamespace("http://soapinterop.org/WSDLInteropTestDocLit", "s");
- }
- msgContext.setEnvelope(responseEnvelope);
+ AxisService service = msgContext.getService();
+ if (operationName != null) {
+ AxisOperation op = service.getOperation(operationName);
+ if (op != null) {
+ msgContext.setOperation(op);
+ } else {
+ throw new AxisFault("Operation not found " + operationName);
+ }
+ } else {
+ throw new AxisFault(
+ "Operation Name not specifed the request String is " + methodName);
+ }
+
+ //get the implementation class for the Web Service
+ Object obj = getTheImplementationObject(msgContext);
+
+ //find the WebService method
+ Class ImplClass = obj.getClass();
+ AxisOperation op = msgContext.getOperation();
+ methodName = op.getName().getLocalPart();
+
+ Method[] methods = ImplClass.getMethods();
+ for (int i = 0; i < methods.length; i++) {
+ if (methods[i].getName().equals(methodName)) {
+ this.method = methods[i];
+ break;
+ }
+ }
+ //deserialize (XML-> java)
+ Object[] parms = deserializeParameters(msgContext, method, xpp);
+ //invoke the WebService
+
+ WSDLInteropTestDocLitPortType benchmark = (WSDLInteropTestDocLitPortType) obj;
+ Object result = null;
+ OMElement returnelement = null;
+ OMFactory fac = OMFactory.newInstance();
+ OMNamespace ns = fac.createOMNamespace("http://soapinterop.org/xsd", "doclitTypes");
+
+ if ("echoVoid".equals(methodName)) {
+ benchmark.echoVoid();
+ returnelement = fac.createOMElement("echoVoidReturn", ns);
+ } else if ("echoString".equals(methodName)) {
+ result = benchmark.echoString((String) parms[0]);
+ returnelement = fac.createOMElement("echoStringReturn", ns);
+ } else if ("echoStringArray".equals(methodName)) {
+ result = benchmark.echoStringArray((String[]) parms[0]);
+ returnelement = fac.createOMElement("echoStringArrayReturn", ns);
+ } else if ("echoStruct".equals(methodName)) {
+ result = benchmark.echoStruct((SOAPStruct) parms[0]);
+ returnelement = fac.createOMElement("echoStructReturn", ns);
+ }
+ Encoder outobj = null;
+ if (result != null) {
+ if (result instanceof String || result instanceof String[]) {
+ outobj = new SimpleTypeEncoder(result);
+ } else if (result instanceof SOAPStruct) {
+ outobj = new SOAPStructEncoder((SOAPStruct) result);
+ }
+ }
+
+ SOAPEnvelope responseEnvelope = fac.getDefaultEnvelope();
- return msgContext;
+ responseEnvelope.getBody().addChild(returnelement);
+ if (result != null) {
+ returnelement.setBuilder(new ObjectToOMBuilder(returnelement, outobj));
+ returnelement.declareNamespace(OMConstants.ARRAY_ITEM_NSURI, "arrays");
+ returnelement.declareNamespace(
+ "http://soapinterop.org/WSDLInteropTestDocLit",
+ "s");
+
+ }
+ msgContext.setEnvelope(responseEnvelope);
+
+ return msgContext;
+ } else {
+ throw new AxisFault("this Service only supports doc-lit");
+ }
} catch (SecurityException e) {
throw AxisFault.makeFault(e);
} catch (IllegalArgumentException e) {
throw AxisFault.makeFault(e);
} catch (java.rmi.RemoteException e) {
+ throw AxisFault.makeFault(e);
+ } catch (XMLStreamException e) {
throw AxisFault.makeFault(e);
}
}
Modified: webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/interop/doclit/SOAPStructEncoder.java Tue Feb 22 04:17:50 2005
@@ -55,9 +55,9 @@
if (VAR_STRING.equals(localName)) {
struct.setVarString(
SimpleTypeEncodingUtils.deserializeString(xpp));
- }else if(VAR_STRING.equals(localName)){
+ }else if(VAR_INT.equals(localName)){
struct.setVarInt(SimpleTypeEncodingUtils.deserializeInt(xpp));
- }else if(VAR_STRING.equals(localName)){
+ }else if(VAR_FLOAT.equals(localName)){
struct.setVarFloat(SimpleTypeEncodingUtils.deserializeFloat(xpp));
}else{
throw new AxisFault("Unknown elemnt "+ localName);
Modified: webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/ArrayTypeEncoder.java Tue Feb 22 04:17:50 2005
@@ -13,99 +13,131 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-package org.apache.axis.testUtils;
-
-import org.apache.axis.engine.AxisFault;
-import org.apache.axis.om.OMConstants;
-import org.apache.axis.om.OMException;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.util.ArrayList;
-
-
-public class ArrayTypeEncoder implements Encoder {
- private Object[] obj = null;
- private Encoder arrayTypeEncoder;
-
- public ArrayTypeEncoder(Object[] obj, Encoder arrayTypeEncoder) {
- this.obj = obj;
- this.arrayTypeEncoder = arrayTypeEncoder;
- }
-
- public ArrayTypeEncoder(Encoder arrayTypeEncoder) {
- this.arrayTypeEncoder = arrayTypeEncoder;
- }
-
-
- public void serialize(ContentHandler cHandler) throws OMException {
- try {
- for (int i = 0; i < obj.length; i++) {
- cHandler.startElement(OMConstants.ARRAY_ITEM_NSURI, OMConstants.ARRAY_ITEM_LOCALNAME, OMConstants.ARRAY_ITEM_QNAME, null);
- arrayTypeEncoder.setObject(obj[i]);
- arrayTypeEncoder.serialize(cHandler);
- cHandler.endElement(OMConstants.ARRAY_ITEM_NSURI, OMConstants.ARRAY_ITEM_LOCALNAME, OMConstants.ARRAY_ITEM_QNAME);
- }
- } catch (SAXException e) {
- throw new OMException(e);
- }
-
- }
-
- /**
- * @return
- */
- public Encoder getArrayTypeEncoder() {
- return arrayTypeEncoder;
- }
-
- /**
- * @param encoder
- */
- public void setArrayTypeEncoder(Encoder encoder) {
- arrayTypeEncoder = encoder;
- }
-
- public Object deSerialize(XMLStreamReader xpp) throws AxisFault {
- ArrayList objs = new ArrayList();
-
- try {
- int event = xpp.next();
- while (XMLStreamConstants.START_ELEMENT != event
- && XMLStreamConstants.END_ELEMENT != event) {
- event = xpp.next();
- }
- if (XMLStreamConstants.END_ELEMENT == event) {
- return null;
- }
-
-// event = xpp.next();
- while (true) {
- if (XMLStreamConstants.START_ELEMENT == event) {
- objs.add(arrayTypeEncoder.deSerialize(xpp));
- } else if (XMLStreamConstants.END_ELEMENT == event) {
- break;
- } else if (XMLStreamConstants.END_DOCUMENT == event) {
- throw new AxisFault("premature and of file");
- }
- event = xpp.next();
- }
- Object[] vals = new Object[objs.size()];
- for (int i = 0; i < objs.size(); i++) {
- vals[i] = objs.get(i);
- }
- return vals;
- } catch (XMLStreamException e) {
- throw AxisFault.makeFault(e);
- }
- }
-
- public void setObject(Object obj) {
- this.obj = (Object[]) obj;
- }
-
-}
+
+package org.apache.axis.testUtils;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.om.OMConstants;
+import org.apache.axis.om.OMException;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import java.util.ArrayList;
+
+public class ArrayTypeEncoder implements Encoder {
+ private Object[] obj = null;
+ private Encoder arrayTypeEncoder;
+ private String arrayelmentLocalName = OMConstants.ARRAY_ITEM_LOCALNAME;
+ private String arrayelmentNSsURI = OMConstants.ARRAY_ITEM_NSURI;
+ private String arrayelmentQName = OMConstants.ARRAY_ITEM_QNAME;
+
+ public ArrayTypeEncoder(Object[] obj, Encoder arrayTypeEncoder) {
+ this.obj = obj;
+ this.arrayTypeEncoder = arrayTypeEncoder;
+ }
+
+ public ArrayTypeEncoder(Encoder arrayTypeEncoder) {
+ this.arrayTypeEncoder = arrayTypeEncoder;
+ }
+
+ public ArrayTypeEncoder(
+ Object[] obj,
+ Encoder arrayTypeEncoder,
+ String arrayelmentLocalName,
+ String arrayelmentNSsURI,
+ String arrayelmentQName) {
+ this.obj = obj;
+ this.arrayTypeEncoder = arrayTypeEncoder;
+ this.arrayelmentLocalName = arrayelmentLocalName;
+ this.arrayelmentNSsURI = arrayelmentNSsURI;
+ this.arrayelmentQName = arrayelmentQName;
+ }
+
+ public ArrayTypeEncoder(
+ Encoder arrayTypeEncoder,
+ String arrayelmentLocalName,
+ String arrayelmentNSsURI,
+ String arrayelmentQName) {
+ this.arrayTypeEncoder = arrayTypeEncoder;
+ this.arrayelmentLocalName = arrayelmentLocalName;
+ this.arrayelmentNSsURI = arrayelmentNSsURI;
+ this.arrayelmentQName = arrayelmentQName;
+ }
+
+ public void serialize(ContentHandler cHandler) throws OMException {
+ try {
+ for (int i = 0; i < obj.length; i++) {
+ cHandler.startElement(
+ OMConstants.ARRAY_ITEM_NSURI,
+ OMConstants.ARRAY_ITEM_LOCALNAME,
+ OMConstants.ARRAY_ITEM_QNAME,
+ null);
+ arrayTypeEncoder.setObject(obj[i]);
+ arrayTypeEncoder.serialize(cHandler);
+ cHandler.endElement(
+ OMConstants.ARRAY_ITEM_NSURI,
+ OMConstants.ARRAY_ITEM_LOCALNAME,
+ OMConstants.ARRAY_ITEM_QNAME);
+ }
+ } catch (SAXException e) {
+ throw new OMException(e);
+ }
+
+ }
+
+ /**
+ * @return
+ */
+ public Encoder getArrayTypeEncoder() {
+ return arrayTypeEncoder;
+ }
+
+ /**
+ * @param encoder
+ */
+ public void setArrayTypeEncoder(Encoder encoder) {
+ arrayTypeEncoder = encoder;
+ }
+
+ public Object deSerialize(XMLStreamReader xpp) throws AxisFault {
+ ArrayList objs = new ArrayList();
+
+ try {
+ int event = xpp.next();
+ while (XMLStreamConstants.START_ELEMENT != event
+ && XMLStreamConstants.END_ELEMENT != event) {
+ event = xpp.next();
+ }
+ if (XMLStreamConstants.END_ELEMENT == event) {
+ return null;
+ }
+
+ // event = xpp.next();
+ while (true) {
+ if (XMLStreamConstants.START_ELEMENT == event) {
+ objs.add(arrayTypeEncoder.deSerialize(xpp));
+ } else if (XMLStreamConstants.END_ELEMENT == event) {
+ break;
+ } else if (XMLStreamConstants.END_DOCUMENT == event) {
+ throw new AxisFault("premature and of file");
+ }
+ event = xpp.next();
+ }
+ Object[] vals = new Object[objs.size()];
+ for (int i = 0; i < objs.size(); i++) {
+ vals[i] = objs.get(i);
+ }
+ return vals;
+ } catch (XMLStreamException e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public void setObject(Object obj) {
+ this.obj = (Object[]) obj;
+ }
+
+}
Modified: webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java?view=diff&r1=154835&r2=154836
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/java/org/apache/axis/testUtils/SimpleTypeEncoder.java Tue Feb 22 04:17:50 2005
@@ -49,8 +49,13 @@
cHandler.startElement(OMConstants.ARRAY_ITEM_NSURI,
OMConstants.ARRAY_ITEM_LOCALNAME,
OMConstants.ARRAY_ITEM_QNAME,
- null);
- str = strs[i].toCharArray();
+ null);
+ if(strs[i]!=null){
+ str = strs[i].toCharArray();
+ }else{
+ str = "".toCharArray();
+ }
+
cHandler.characters(str, 0, str.length);
cHandler.endElement(OMConstants.ARRAY_ITEM_NSURI, OMConstants.ARRAY_ITEM_LOCALNAME, OMConstants.ARRAY_ITEM_QNAME);
}