I have interface:
public interface CartService extends RemoteService{
T execute(Action action);
}
The problem is the definition of the interface vs what the erausre should look like for your impl. In your example you have:
T execute(Action action);
public GetCartResponse execute(GetCart action);
but according to the interface definition the implementation method should read:
public GetCartResponse execute(Action action);
So I think you either need to change the signature of your interface or add another type parameter such as:
public interface CartService extends RemoteService{
T execute(U action);
}
or possibly something along the lines of:
public interface CartService extends RemoteService{
ActionResponse execute(Action action);
}