// Register the service
s_service = new Service();
client = (Call) s_service.createCall();
SOAPService service = new SOAPService(null,
new RPCProvider(),
null);
service.setName("TestOutParamsService");
service.setOption("className", "test.outparams2.TestOutParams");
service.setOption("allowedMethods", "serviceMethod");
EngineConfiguration defaultConfig =
(new DefaultEngineConfigurationFactory()).getServerEngineConfig();
SimpleProvider config = new SimpleProvider(defaultConfig);
config.deployService("outParamsTest", service);
provider.deployService("outParamsTest", service);
// Make sure the local transport uses the server we just configured
client.setTransport(new LocalTransport(server));
Message msg = new Message(message, false);
SOAPEnvelope env = msg.getSOAPEnvelope();
// test invocation. test Holder parameter defaults to INOUT type
client.invoke(env);
// method was succesfully invoked
assertTrue(called);
ServiceDesc description = null;
OperationDesc operation = null;
ParameterDesc parameter = null;
description = service.getServiceDescription();
operation = description.getOperationByName("serviceMethod");
parameter = operation.getParamByQName(new QName("", "out1"));
assertEquals(ParameterDesc.INOUT, parameter.getMode());
// Changing output parameter to OUT type.
parameter.setMode(ParameterDesc.OUT);
// rest called
called = false;
// invoke again
client.invoke(env);
assertTrue(this.called);