getActualTypes(method.getGenericExceptionTypes(), method.getExceptionTypes(), typeBindings);
boolean nonBlocking = method.isAnnotationPresent(OneWay.class);
if (nonBlocking) {
if (!(returnType == void.class)) {
throw new InvalidOperationException(
"Method should return 'void' when declared with an @OneWay annotation. " + method,
method);
}
if (!(faultTypes.length == 0)) {
throw new InvalidOperationException(
"Method should not declare exceptions with an @OneWay annotation. " + method,
method);
}
}
ConversationSequence conversationSequence = ConversationSequence.CONVERSATION_NONE;
if (method.isAnnotationPresent(EndsConversation.class)) {
if (!conversational) {
throw new InvalidOperationException(
"Method is marked as end conversation but contract is not conversational",
method);
}
conversationSequence = ConversationSequence.CONVERSATION_END;
} else if (conversational) {