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 ru...@apache.org on 2001/06/07 16:02:30 UTC
cvs commit: xml-axis/java/test/RPCDispatch TestRPC.java
rubys 01/06/07 07:02:29
Modified: java/samples/bidbuy BidService.java deploy.xml
java/src/org/apache/axis MessageContext.java
java/src/org/apache/axis/client/http HTTPTransport.java
java/src/org/apache/axis/encoding BeanSerializer.java
DeserializerFactory.java SOAPEncoding.java
Serializer.java TypeMappingRegistry.java
java/src/org/apache/axis/handlers/soap SOAPService.java
java/src/org/apache/axis/server AxisServer.java
java/src/org/apache/axis/transport/http
SimpleAxisServer.java
java/src/org/apache/axis/utils Admin.java QName.java
java/test/RPCDispatch TestRPC.java
Log:
1) Deploying beans from deploy.xml now works
2) Type mappings for deployed services are serialized with the service
3) Hierarchical type mappings now use: msgContext, service, server, SOAP
4) MessageContext is once again serially reusable
Revision Changes Path
1.3 +0 -28 xml-axis/java/samples/bidbuy/BidService.java
Index: BidService.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/bidbuy/BidService.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BidService.java 2001/05/10 01:03:31 1.2
+++ BidService.java 2001/06/07 14:01:32 1.3
@@ -44,34 +44,6 @@
}
/**
- * Register the serializers and deserializers required to implement
- * a Buy service
- * @param map the TypeMappingRegistry to update
- */
- public void BuyTypeMap(TypeMappingRegistry map) throws Exception {
-
- // register the PurchaseOrder class
- QName poqn = new QName("http://www.soapinterop.org/Bid",
- "PurchaseOrder");
- Class cls = PurchaseOrder.class;
- map.addSerializer(cls, poqn, new BeanSerializer(cls));
- map.addDeserializerFactory(poqn, cls, BeanSerializer.getFactory(cls));
-
- // register the Address class
- QName aqn = new QName("http://www.soapinterop.org/Bid", "Address");
- cls = Address.class;
- map.addSerializer(cls, aqn, new BeanSerializer(cls));
- map.addDeserializerFactory(aqn, cls, BeanSerializer.getFactory(cls));
-
- // register the LineItem class
- QName liqn = new QName("http://www.soapinterop.org/Bid", "LineItem");
- cls = LineItem.class;
- map.addSerializer(cls, liqn, new BeanSerializer(cls));
- map.addDeserializerFactory(liqn, cls, BeanSerializer.getFactory(cls));
-
- }
-
- /**
* Process a purchase order.
* @return Receipt
*/
1.4 +6 -5 xml-axis/java/samples/bidbuy/deploy.xml
Index: deploy.xml
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/bidbuy/deploy.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- deploy.xml 2001/05/22 21:26:47 1.3
+++ deploy.xml 2001/06/07 14:01:33 1.4
@@ -7,7 +7,7 @@
<!-- after the axis server is running -->
<!-- This file will be replaced by WSDD once it's ready -->
-<deploy xmlns:bid="http://www.soapinterop.org/Bid">
+<deploy>
<chain name="bid" flow="RPCDispatcher" />
<service name="http://www.soapinterop.org/RequestForQuote" pivot="bid" >
@@ -23,7 +23,6 @@
<service name="http://www.soapinterop.org/Buy" pivot="bid" >
<option name="className" value="samples.bidbuy.BidService" />
<option name="methodName" value="Buy" />
- <option name="typemap" value="BuyTypeMap" />
</service>
<service name="http://www.soapinterop.org/Ping" pivot="bid" >
@@ -31,7 +30,9 @@
<option name="methodName" value="Ping" />
</service>
- <bean name="samples.bidbuy.PurchaseOrder" qname="bid:PurchaseOrder"/>
- <bean name="samples.bidbuy.Address" qname="bid:Address"/>
- <bean name="samples.bidbuy.LineItem" qname="bid:LineItem"/>
+ <bean xmlns:bid="http://www.soapinterop.org/Bid">
+ <bid:PurchaseOrder classname="samples.bidbuy.PurchaseOrder"/>
+ <bid:Address classname="samples.bidbuy.Address"/>
+ <bid:LineItem classname="samples.bidbuy.LineItem"/>
+ </bean>
</deploy>
1.28 +46 -51 xml-axis/java/src/org/apache/axis/MessageContext.java
Index: MessageContext.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/MessageContext.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- MessageContext.java 2001/06/02 04:01:16 1.27
+++ MessageContext.java 2001/06/07 14:01:39 1.28
@@ -211,22 +211,18 @@
* @param tServ the name of the target service.
* @exception AxisFault
*/
- public void setTargetService(String tServ) throws AxisFault {
- targetService = tServ ;
- HandlerRegistry sr = (HandlerRegistry)
- getProperty(Constants.SERVICE_REGISTRY);
- if (sr == null)
- return;
-
- Handler service = sr.find(tServ);
- /* Do NOT throw an exception if the service handler is not found,
- since we may be on the client! -- yow... this is messy. -- RobJ
- */
- if (service == null) {
- // throw new AxisFault("No service named '" + tServ + "' in registry!");
- } else {
- setServiceHandler(service);
- }
+ public void setTargetService(String tServ) {
+ targetService = tServ ;
+
+ HandlerRegistry sr = (HandlerRegistry)
+ getProperty(Constants.SERVICE_REGISTRY);
+
+ if (sr == null || targetService == null)
+ setServiceHandler(null);
+ else
+ // Do NOT throw an exception if the service handler is not found,
+ // since we may be on the client! -- yow... this is messy. -- RobJ
+ setServiceHandler(sr.find(tServ));
}
/** ServiceHandler is the handler that is the "service". This handler
@@ -242,41 +238,38 @@
public Handler getServiceHandler() {
if (serviceHandler == null) {
- try {
- if (targetService != null) {
- /** This is a bit kludgey for now - what might have
- * happened is that someone set the target service name
- * before the registry was set, or before the service
- * was registered. So just to make sure, we set it
- * again here and see if that causes the serviceHandler
- * to be set correctly.
- */
- setTargetService(targetService);
- } else if (!parsing) {
- // No target service was set. So here's where we want to
- // potentially try to dispatch off the QName of the first
- // appropriate <Body> element. Might also hook this to
- // another configurable piece of code to avoid SOAP
- // specifics in this class.
- SOAPEnvelope env = (SOAPEnvelope)
- inMessage.getAs("SOAPEnvelope");
- Vector bodies = env.getBodyElements();
- Enumeration e = bodies.elements();
- while (e.hasMoreElements()) {
- SOAPBodyElement body = (SOAPBodyElement)
- e.nextElement();
- /** The algorithm we use here is to find the first
- * element without an ID attribute (assuming that
- * ID'ed attributes are multi-ref encodings).
- */
- if (body.getID() == null) {
- //Debug.Print(2, "Dispatching to body namespace '"
- // + body.getNamespaceURI() + "'");
- setTargetService(body.getNamespaceURI());
- }
+ if (targetService != null) {
+ /** This is a bit kludgey for now - what might have
+ * happened is that someone set the target service name
+ * before the registry was set, or before the service
+ * was registered. So just to make sure, we set it
+ * again here and see if that causes the serviceHandler
+ * to be set correctly.
+ */
+ setTargetService(targetService);
+ } else if (!parsing) {
+ // No target service was set. So here's where we want to
+ // potentially try to dispatch off the QName of the first
+ // appropriate <Body> element. Might also hook this to
+ // another configurable piece of code to avoid SOAP
+ // specifics in this class.
+ SOAPEnvelope env = (SOAPEnvelope)
+ inMessage.getAs("SOAPEnvelope");
+ Vector bodies = env.getBodyElements();
+ Enumeration e = bodies.elements();
+ while (e.hasMoreElements()) {
+ SOAPBodyElement body = (SOAPBodyElement)
+ e.nextElement();
+ /** The algorithm we use here is to find the first
+ * element without an ID attribute (assuming that
+ * ID'ed attributes are multi-ref encodings).
+ */
+ if (body.getID() == null) {
+ //Debug.Print(2, "Dispatching to body namespace '"
+ // + body.getNamespaceURI() + "'");
+ setTargetService(body.getNamespaceURI());
}
}
- } catch (AxisFault f) {
}
}
return( serviceHandler );
@@ -285,9 +278,11 @@
public void setServiceHandler(Handler sh)
{
serviceHandler = sh;
- if (sh instanceof SOAPService) {
+ if (sh != null && sh instanceof SOAPService) {
TypeMappingRegistry tmr = ((SOAPService)sh).getTypeMappingRegistry();
- setTypeMappingRegistry(tmr);
+ getTypeMappingRegistry().setParent(tmr);
+ } else {
+ getTypeMappingRegistry().setParent(soapTMR);
}
}
1.3 +1 -6 xml-axis/java/src/org/apache/axis/client/http/HTTPTransport.java
Index: HTTPTransport.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/http/HTTPTransport.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- HTTPTransport.java 2001/06/02 04:01:18 1.2
+++ HTTPTransport.java 2001/06/07 14:01:44 1.3
@@ -136,12 +136,7 @@
{
if (url != null) mc.setProperty(URL, url);
if (action != null) mc.setProperty(ACTION, action);
- try {
- mc.setTargetService( (String)mc.getProperty(ACTION) );
- } catch (AxisFault f) {
- System.err.println("HTTPTransport.setupMessageContext: Could not set target service to "+serviceClient.get(ACTION));
- throw f;
- }
+ mc.setTargetService( (String)mc.getProperty(ACTION) );
if ( doLocal && ((String)mc.getProperty(URL)).endsWith( ".jws") ) {
mc.setProperty( "JWSFileName", serviceClient.get(URL).substring(11) );
1.5 +10 -13 xml-axis/java/src/org/apache/axis/encoding/BeanSerializer.java
Index: BeanSerializer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/BeanSerializer.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BeanSerializer.java 2001/06/05 15:24:40 1.4
+++ BeanSerializer.java 2001/06/07 14:01:48 1.5
@@ -156,6 +156,12 @@
return bs;
}
+
+ /**
+ * Override serialization - all that is needed is the class
+ */
+ private static final ObjectStreamField[] serialPersistentFields =
+ {new ObjectStreamField("cls", Class.class)};
}
/**
@@ -262,18 +268,9 @@
}
/**
- * Write the serializer out to disk. Actually, all we need is enough
- * to reconsitute the object from scratch, namely
+ * Override serialization - all that is needed is the class
*/
- private void writeObject(ObjectOutputStream out) throws IOException {
- out.writeObject(cls.getName());
- }
-
- private void readObject(ObjectInputStream stream)
- throws IOException, ClassNotFoundException
- {
- String clsName = (String) stream.readObject();
- setCls(Class.forName(clsName));
- }
-
+ private static final ObjectStreamField[] serialPersistentFields =
+ {new ObjectStreamField("cls", Class.class)};
+
}
1.2 +1 -1 xml-axis/java/src/org/apache/axis/encoding/DeserializerFactory.java
Index: DeserializerFactory.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializerFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DeserializerFactory.java 2001/05/03 14:31:46 1.1
+++ DeserializerFactory.java 2001/06/07 14:01:49 1.2
@@ -1,6 +1,6 @@
package org.apache.axis.encoding;
-public interface DeserializerFactory
+public interface DeserializerFactory extends java.io.Serializable
{
public DeserializerBase getDeserializer();
}
1.5 +1 -1 xml-axis/java/src/org/apache/axis/encoding/SOAPEncoding.java
Index: SOAPEncoding.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/SOAPEncoding.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SOAPEncoding.java 2001/05/08 15:35:07 1.4
+++ SOAPEncoding.java 2001/06/07 14:01:51 1.5
@@ -10,7 +10,7 @@
import java.io.IOException;
import java.math.BigDecimal;
-public class SOAPEncoding implements Serializer {
+public class SOAPEncoding implements Serializer, java.io.Serializable {
private Hashtable typemap = new Hashtable();
private Hashtable namemap = new Hashtable();
1.5 +1 -1 xml-axis/java/src/org/apache/axis/encoding/Serializer.java
Index: Serializer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/Serializer.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Serializer.java 2001/05/03 14:31:52 1.4
+++ Serializer.java 2001/06/07 14:01:54 1.5
@@ -65,7 +65,7 @@
/**
* @author James Snell (jasnell@us.ibm.com)
*/
-public interface Serializer {
+public interface Serializer extends java.io.Serializable {
public void serialize(QName name, Attributes attributes,
Object value, SerializationContext context)
throws IOException;
1.12 +26 -1 xml-axis/java/src/org/apache/axis/encoding/TypeMappingRegistry.java
Index: TypeMappingRegistry.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/TypeMappingRegistry.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- TypeMappingRegistry.java 2001/05/22 21:26:59 1.11
+++ TypeMappingRegistry.java 2001/06/07 14:01:56 1.12
@@ -70,7 +70,7 @@
* @author James Snell (jasnell@us.ibm.com)
* @author Sam Ruby (rubys@us.ibm.com)
*/
-public class TypeMappingRegistry implements Serializer {
+public class TypeMappingRegistry implements Serializer, Serializable {
// default location for save/load
private String fileName = null;
@@ -128,6 +128,16 @@
*/
public void setParent(TypeMappingRegistry parent) {
this.parent = parent;
+
+ // debug assertions: every tmr must have exactly one
+ // SOAPTypeMappingRegistry at the top.
+ if (parent == null)
+ new Exception("null parent!").printStackTrace();
+ if (this instanceof SOAPTypeMappingRegistry)
+ new Exception("SOAPTypeMappingRegistry w/parent").printStackTrace();
+ for (TypeMappingRegistry t = parent; t!=null; t=t.getParent())
+ if (t instanceof SOAPTypeMappingRegistry) return;
+ new Exception("no SOAPTypeMappingRegistry parent").printStackTrace();
}
public TypeMappingRegistry getParent() {
@@ -276,6 +286,21 @@
// !!! Write out a generic null, or get type info from somewhere else?
}
+ public void dump(PrintStream out, String header) {
+ out.println(header);
+ if (fileName != null)
+ out.println(" File: " + fileName);
+ out.println(" Deserializers:");
+ if (d != null) {
+ java.util.Enumeration e = d.keys();
+ while (e.hasMoreElements()) {
+ Object key = e.nextElement();
+ out.println(" " + key + " => " + d.get(key));
+ }
+ }
+ if (parent != null)
+ parent.dump(out, "Parent");
+ }
//public MessageElement serialize(QName name, Object value, NSStack nsStack, Message message) {
// if (value != null) {
// Class _class = value.getClass();
1.5 +8 -8 xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java
Index: SOAPService.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SOAPService.java 2001/05/31 16:02:44 1.4
+++ SOAPService.java 2001/06/07 14:02:06 1.5
@@ -70,20 +70,20 @@
public class SOAPService extends SimpleTargetedChain
{
public static final String OPTION_PIVOT = "pivot";
-
+
+ private static final SOAPTypeMappingRegistry soapTMR =
+ new SOAPTypeMappingRegistry();
+
/** Service-specific type mappings
- *
- * !!! This is just a test for now, these do not get serialized (and thus
- * restored) with the registered services. This should come out of our
- * XML storage eventually.
- *
*/
- private transient TypeMappingRegistry typeMap = new SOAPTypeMappingRegistry();
+ private TypeMappingRegistry typeMap;
/** Standard, no-arg constructor.
*/
public SOAPService()
{
+ typeMap = new TypeMappingRegistry();
+ typeMap.setParent(soapTMR);
}
public TypeMappingRegistry getTypeMappingRegistry()
@@ -101,7 +101,7 @@
*/
public SOAPService(Handler serviceHandler, String pivotName)
{
- super();
+ this();
setPivotHandler(serviceHandler);
addOption(OPTION_PIVOT, pivotName);
}
1.14 +4 -0 xml-axis/java/src/org/apache/axis/server/AxisServer.java
Index: AxisServer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/AxisServer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- AxisServer.java 2001/05/31 20:29:17 1.13
+++ AxisServer.java 2001/06/07 14:02:11 1.14
@@ -59,6 +59,7 @@
import org.apache.axis.* ;
import org.apache.axis.utils.* ;
import org.apache.axis.handlers.* ;
+import org.apache.axis.handlers.soap.* ;
import org.apache.axis.registries.* ;
import org.apache.axis.encoding.SOAPTypeMappingRegistry;
import org.apache.axis.encoding.TypeMappingRegistry;
@@ -113,6 +114,9 @@
TypeMappingRegistry tmr = new TypeMappingRegistry("typemap-supp.reg");
tmr.setParent(new SOAPTypeMappingRegistry());
addOption( Constants.TYPEMAP_REGISTRY, tmr );
+ Handler admin = sr.find("AdminService");
+ if (admin != null && admin instanceof SOAPService)
+ ((SOAPService)admin).setTypeMappingRegistry(tmr);
Debug.Print( 1, "Exit: AxisServer::init" );
}
1.8 +24 -23 xml-axis/java/src/org/apache/axis/transport/http/SimpleAxisServer.java
Index: SimpleAxisServer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/transport/http/SimpleAxisServer.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SimpleAxisServer.java 2001/05/31 09:24:45 1.7
+++ SimpleAxisServer.java 2001/06/07 14:02:15 1.8
@@ -139,7 +139,7 @@
Message faultMsg = new Message(null, "AxisFault");
// Accept and process requests from the socket
- while (!stopped) {
+ while (!stopped) {
Socket socket = null;
// prepare request (do as much as possible while waiting for the
@@ -149,14 +149,15 @@
// msgContext = new MessageContext();
// requestMsg = new Message("", "String");
msgContext.setServiceDescription(null);
+ msgContext.setTargetService(null);
msgContext.setRequestMessage(requestMsg);
msgContext.setResponseMessage(null);
msgContext.clearProperties();
msgContext.setProperty(MessageContext.TRANS_INPUT, transportInName);
msgContext.setProperty(MessageContext.TRANS_OUTPUT, transportOutName);
- try {
+ try {
try {
- socket = serverSocket.accept();
+ socket = serverSocket.accept();
} catch (IOException ioe) {
break;
}
@@ -217,31 +218,31 @@
byte[] response = (byte[]) responseMsg.getAs("Bytes");
// Send it on its way...
- OutputStream out = socket.getOutputStream();
- out.write(HTTP);
- out.write(status);
- out.write(MIME_STUFF);
- putInt(out, response.length);
- out.write(SEPARATOR);
+ OutputStream out = socket.getOutputStream();
+ out.write(HTTP);
+ out.write(status);
+ out.write(MIME_STUFF);
+ putInt(out, response.length);
+ out.write(SEPARATOR);
out.write(response);
out.flush();
- if (msgContext.getProperty(msgContext.QUIT_REQUESTED) != null) {
- // why then, quit!
- this.stop();
- }
+ if (msgContext.getProperty(msgContext.QUIT_REQUESTED) != null) {
+ // why then, quit!
+ this.stop();
+ }
- } catch (InterruptedIOException iie) {
- break;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if (socket!=null) socket.close();
- } catch (Exception e) {
- }
+ } catch (InterruptedIOException iie) {
+ break;
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (socket!=null) socket.close();
+ } catch (Exception e) {
+ }
+ }
}
- }
System.out.println("SimpleAxisServer quitting.");
}
1.36 +32 -37 xml-axis/java/src/org/apache/axis/utils/Admin.java
Index: Admin.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/Admin.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- Admin.java 2001/06/02 04:01:19 1.35
+++ Admin.java 2001/06/07 14:02:19 1.36
@@ -385,6 +385,9 @@
if ( service == null ) service = new SOAPService();
else service.clear();
+ if (tmr != null)
+ service.getTypeMappingRegistry().setParent(tmr.getParent());
+
if ( input != null && !"".equals(input) ) {
st = new StringTokenizer( input, " \t\n\r\f," );
c = null ;
@@ -451,51 +454,43 @@
return( doc );
}
- private void registerTypeMapping(Element elem, TypeMappingRegistry map)
+ private void registerTypeMapping(Element root, TypeMappingRegistry map)
throws Exception
{
- String name = elem.getAttribute("name");
- if ((name == null) || name.equals(""))
- throw new AxisFault("Server.Admin.error",
- "No name attribute in type mapping",
- null, null);
+ NodeList list = root.getChildNodes();
+ for ( int i = 0 ; list != null && i < list.getLength() ; i++ ) {
+ Node node = list.item(i);
+ if ( node.getNodeType() != Node.ELEMENT_NODE ) continue ;
+ Element elem = (Element) node ;
+
+ // Retrieve classname attribute
+
+ String classname = elem.getAttribute("classname");
+ if ((classname == null) || classname.equals(""))
+ throw new AxisFault("Server.Admin.error",
+ "No classname attribute in bean mapping",
+ null, null);
- // Resolve class name
-
- Class cls;
- try {
- cls = Class.forName(name);
- } catch (Exception e) {
- throw new AxisFault( "Admin.error", e.toString(), null, null);
- }
+ // Resolve class name
- // Resolve qname based on prefix and localpart
+ Class cls;
+ try {
+ cls = Class.forName(classname);
+ } catch (Exception e) {
+ throw new AxisFault( "Admin.error", e.toString(), null, null);
+ }
- String qname = elem.getAttribute( "qname" );
- if (qname == null)
- throw new AxisFault( "Admin.error",
- "Missing qname in bean " + name, null, null);
-
- int pos = qname.indexOf(':');
- if (pos < 0)
- throw new AxisFault( "Admin.error",
- "Missing namespace in qname " + qname,
- null, null);
-
- String prefix = qname.substring(0, pos);
- String localPart = qname.substring(pos+1);
- String namespace = XMLUtils.getNamespace(prefix, elem);
- if (namespace == null)
- throw new AxisFault( "Admin.error",
- "Unknown namespace in qname " + qname,
- null, null);
+ // Resolve qname based on prefix and localpart
- QName qn = new QName(namespace, localPart);
+ String namespaceURI = elem.getNamespaceURI();
+ String localName = elem.getLocalName();
+ QName qn = new QName(namespaceURI, localName);
- // register both serializers and deserializers for this bean
+ // register both serializers and deserializers for this bean
- map.addSerializer(cls, qn, new BeanSerializer(cls));
- map.addDeserializerFactory(qn, cls, BeanSerializer.getFactory(cls));
+ map.addSerializer(cls, qn, new BeanSerializer(cls));
+ map.addDeserializerFactory(qn, cls, BeanSerializer.getFactory(cls));
+ }
}
public static void main(String args[]) throws Exception {
1.10 +1 -1 xml-axis/java/src/org/apache/axis/utils/QName.java
Index: QName.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/QName.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- QName.java 2001/05/22 23:52:19 1.9
+++ QName.java 2001/06/07 14:02:20 1.10
@@ -61,7 +61,7 @@
* @author Doug Davis (dug@us.ibm.com)
* @author James Snell (jasnell@us.ibm.com)
*/
-public class QName {
+public class QName implements java.io.Serializable {
private String namespaceURI ;
private String localPart ;
1.7 +1 -6 xml-axis/java/test/RPCDispatch/TestRPC.java
Index: TestRPC.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/RPCDispatch/TestRPC.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestRPC.java 2001/06/04 18:56:55 1.6
+++ TestRPC.java 2001/06/07 14:02:26 1.7
@@ -70,12 +70,7 @@
MessageContext msgContext = new MessageContext();
msgContext.setProperty(Constants.SERVICE_REGISTRY, sr);
msgContext.setRequestMessage(new Message(envelope, "SOAPEnvelope"));
- try {
- msgContext.setTargetService(SOAPAction);
- } catch (AxisFault f) {
- System.err.println("Faulted when setting target service to SOAPAction");
- throw f;
- }
+ msgContext.setTargetService(SOAPAction);
// Invoke the Axis engine
try {