ServerTransport server =
createServerTransport(WSDL_URL, SERVICE_NAME, PORT_NAME, address);
activateServer(server, useAutomaticWorkQueue, 0, null, false, decoupled);
//short request
ClientTransport client =
createClientTransport(WSDL_URL, SERVICE_NAME, PORT_NAME, address, decoupled);
doRequestResponse(client, "Hello World".getBytes(), true, decoupled);
//long request
byte outBytes[] = new byte[5000];
for (int x = 0; x < outBytes.length; x++) {
outBytes[x] = (byte)('a' + (x % 26));
}
client =
createClientTransport(WSDL_URL, SERVICE_NAME, PORT_NAME, address, decoupled);
doRequestResponse(client, outBytes, false, decoupled);
server.deactivate();
outBytes = "HelloWorld".getBytes();
try {
OutputStreamMessageContext octx = client.createOutputStreamContext(new GenericMessageContext());
client.finalPrepareOutputStreamContext(octx);
octx.getOutputStream().write(outBytes);
octx.getOutputStream().close();
InputStreamMessageContext ictx = client.invoke(octx);
byte bytes[] = new byte[10000];
int len = ictx.getInputStream().read(bytes);
if (len != -1
&& new String(bytes, 0, len).indexOf("HTTP Status 503") == -1
&& new String(bytes, 0, len).indexOf("Error 404") == -1) {
fail("was able to process a message after the servant was deactivated: " + len
+ " - " + new String(bytes));
}
} catch (IOException ex) {
//ignore - this is what we want
}
activateServer(server, useAutomaticWorkQueue, 0, null, false, decoupled);
doRequestResponse(client, "Hello World 3".getBytes(), false, decoupled);
server.deactivate();
activateServer(server, useAutomaticWorkQueue, 0, null, false, decoupled);
doRequestResponse(client, "Hello World 4".getBytes(), false, decoupled);
server.deactivate();
EasyMock.reset(bus);
checkBusRemovedEvent();
EasyMock.replay(bus);
client.shutdown();
}