public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (!isStarted()) {
throw new IllegalStateException("The endpoint is not active: " + getEndpoint().getEndpointUri());
}
PojoInvocation invocation = new PojoInvocation(proxy, method, args);
PojoExchange exchange = getEndpoint().createExchange();
exchange.setInvocation(invocation);
getProcessor().process(exchange);
Throwable fault = exchange.getException();
if (fault != null) {