System.out.println("*** seekBookInBasement request (Request-Callback operation) was received ***");
System.out.println("****************************************************************************");
showSeekBookInBasementRequest(body);
CallContext ctx = CallContext.getCallContext(wsContext.getMessageContext());
System.out.println("Info from CallContext:");
System.out.println("- Call ID is " + ctx.getCallId());
/**** Storing Call Context *** */
System.out.println("Storing CallContext:");
CallContextStore<CallContext> ccs = new CallContextStore<CallContext>();
String callContextKey;
try {
callContextKey = ccs.saveObject(ctx);
System.out.println("- callContext saved with key: " + callContextKey);
} catch (Exception e) {
callContextKey = null;
System.out.println("Auxiliary Storage Service seems to be unavailable.");
System.out.println("Proceeding without storing the CallContext.");
}
if (callContextKey != null) {
/**** Restoring Call Context *** */
System.out.println("Restoring CallContext:");
ctx = ccs.getStoredObject(callContextKey);
System.out.println("- callContext restored");
System.out.println("Info from restored CallContext:");
System.out.println("- Call ID is " + ctx.getCallId());
/**** Remove Call context ***/
ccs.removeStoredObject(callContextKey);
}
List<String> authorsLastNames = body.getAuthorLastName();
if (authorsLastNames != null && authorsLastNames.size() > 0) {
String authorsLastName = authorsLastNames.get(0);
if (authorsLastName != null && authorsLastName.length() > 0
&& !"Stripycat".equalsIgnoreCase(authorsLastName)) {
SeekBookError e = prepareException("No book available from author "
+ authorsLastName);
System.out.println("No book available from author "
+ authorsLastName);
System.out
.println("\nSending business fault (SeekBook error) with parameters:");
Utils.showSeekBookError(e);
LibraryConsumer libraryConsumer = ctx.createCallbackProxy(LibraryConsumer.class);
libraryConsumer.seekBookInBasementFault(e.getFaultInfo());
if (callContextKey != null) {
/**** Removing Call Context *** */
System.out.println("Removing CallContext:");
ccs.removeStoredObject(callContextKey);
System.out.println("- callContext removed");
}
return;
}
}
ListOfBooks result = new ListOfBooks();
BookType book = new BookType();
result.getBook().add(book);
PersonType author = new PersonType();
book.getAuthor().add(author);
author.setFirstName("John");
author.setLastName("Stripycat");
Calendar dateOfBirth = new GregorianCalendar(202, Calendar.MAY, 17);
author.setDateOfBirth(dateOfBirth.getTime());
book.getTitle().add("Hunting basement inhabitants");
book.getPublisher().add("Dusty Edition");
book.setYearPublished("2013");
System.out.println("Book(s) is found:");
showSeekBookResponse(result);
ctx.setupCallbackProxy(callbackResponseClient);
callbackResponseClient.seekBookInBasementResponse(result);
book.getTitle().set(0, "Hunting more basement inhabitants");
book.setYearPublished("2014");
showSeekBookResponse(result);
ctx.setupCallbackProxy(callbackResponseClient);
callbackResponseClient.seekBookInBasementResponse(result);
if (callContextKey != null) {
/**** Removing Call Context *** */
System.out.println("Removing CallContext:");