public void testBoundOutHeader() throws Exception
{
Service service = ServiceFactory.newInstance().createService(new QName("testService"));
Call call = service.createCall();
call.setOperationName(new QName(NAMESPACE_URI, "testOutHeader"));
call.addParameter("String_1", Constants.TYPE_LITERAL_STRING, ParameterMode.IN);
call.setTargetEndpointAddress(TARGET_ENDPOINT_ADDRESS);
// Add a bound header to the call
CallImpl mycall = (CallImpl)call;
QName xmlName = new QName(HEADER_NAMESPACE_URI, "headerMsg");
mycall.addParameter(xmlName, Constants.TYPE_LITERAL_STRING, String.class, ParameterMode.OUT, true);
StringHolder holder = new StringHolder();
Object retObj = call.invoke(new Object[]{"Hello world!", holder});
assertNull(retObj);
Map outputParams = call.getOutputParams();
Object headerValue = outputParams.get(xmlName.getLocalPart());
assertEquals("OUT header message", headerValue);
assertEquals("OUT header message", holder.value);
}