I have a "Bean" that
I am passing to the call object as an argument to my service. The code
looks like this:
Options options = new
Options(args);
String message = "Default message";
if (options.isValueSet('m') != null )
{
message = options.isValueSet('m');
}
Environment env = new Environment();
env.setProperty(env.REALMID,"1");
env.setProperty(env.USERNAME,"me");
String message = "Default message";
if (options.isValueSet('m') != null )
{
message = options.isValueSet('m');
}
Environment env = new Environment();
env.setProperty(env.REALMID,"1");
env.setProperty(env.USERNAME,"me");
Service service = new
Service();
Call call = (Call) service.createCall();
QName qn = new QName("echoWSjava", "Environment" );
call.registerTypeMapping(Environment.class, qn,
BeanSerializerFactory.class,
BeanDeserializerFactory.class);
QName sqn = new QName("echoWSjava", "String" );
String result;
Call call = (Call) service.createCall();
QName qn = new QName("echoWSjava", "Environment" );
call.registerTypeMapping(Environment.class, qn,
BeanSerializerFactory.class,
BeanDeserializerFactory.class);
QName sqn = new QName("echoWSjava", "String" );
String result;
call.setTargetEndpointAddress( new
java.net.URL(options.getURL()));
call.setOperationName( new QName("echoWSjava","echoMessage"));
call.addParameter("arg1",sqn,ParameterMode.IN);
call.addParameter("arg2",qn,ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
result = (String) call.invoke(new Object[] { message,env } );
call.setOperationName( new QName("echoWSjava","echoMessage"));
call.addParameter("arg1",sqn,ParameterMode.IN);
call.addParameter("arg2",qn,ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
result = (String) call.invoke(new Object[] { message,env } );
When Axis tries to
get the serializer it falls to the getSerializerAs method of
BaseSerializerFactory and the tests in that method end up trying call
newInstance on the BeanSerializer class. There is no default constructor
in BeanSerializer and a java.lang.InstantiationException:
org.apache.axis.encoding.ser.BeanSerializer exception is thrown (which is caught
at some point and eaten so you never see the error unless you go edit Axis code
and recompile, but that is another issue altogether). Am I doing something
wrong in my code? The Environment class I am using works fine with Apache
SOAP 2.3's BeanSerializer.
Thanks
Joe
