super(name);
}
public void testBean () throws Exception {
MessageContext msgContext = new MessageContext(new AxisServer(new BasicServerConfig()));
SOAPEnvelope msg = new SOAPEnvelope();
// Create bean with data
AttributeBean bean = new AttributeBean();
bean.setAge(35);
bean.setID(1.15F);
bean.setMale(true);
bean.company = "Majesty's Secret Service";
bean.setName("James Bond");
RPCParam arg = new RPCParam("", "struct", bean);
RPCElement body = new RPCElement("urn:myNamespace", "method1", new Object[]{ arg });
msg.addBodyElement(body);
body.setEncodingStyle(null);
Writer stringWriter = new StringWriter();
SerializationContext context = new SerializationContextImpl(stringWriter, msgContext);
context.setDoMultiRefs(false); // no multirefs
context.setPretty(false);
// Create a TypeMapping and register the Bean serializer/deserializer
TypeMappingRegistry reg = context.getTypeMappingRegistry();
TypeMapping tm = (TypeMapping) reg.createTypeMapping();
// The "" namespace is literal (no encoding).
tm.setSupportedEncodings(new String[] {Constants.URI_DEFAULT_SOAP_ENC});
reg.register(Constants.URI_DEFAULT_SOAP_ENC, tm);
QName beanQName = new QName("typeNS", "TheBean");
tm.register(AttributeBean.class,
beanQName,
new BeanSerializerFactory(AttributeBean.class, beanQName),
new BeanDeserializerFactory(AttributeBean.class, beanQName));
// Serialize the bean in to XML
msg.output(context);
// Get the XML as a string
String msgString = stringWriter.toString();
log.debug("---");
log.debug(msgString);
log.debug("---");
Message message = new Message(msgString);
message.setMessageContext(msgContext);
SOAPEnvelope env = message.getSOAPEnvelope();
RPCElement rpcEl = (RPCElement)env.getFirstBody();
Vector params = rpcEl.getParams();
assertEquals("Wrong # of params in deserialized message!",
1,
params.size());