Guice não injeta os recursos de Jersey

Analisado em toda a Internet, mas não consigo descobrir por que isso acontece. Eu tenho um projeto mais simples possível (sobre o arquétipo jersey-quickstart-grizzly2) com um recurso de Jersey. Estou usando o Guice como DI porque o CDI também não quer trabalhar com Jersey. O problema é que Guice não pode resolver a classe a ser usada ao injetar nos recursos de Jersey. Funciona muito bem lá fora, mas não com Jersey. Aqui está o recurso de Jersey:

import com.google.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("api")
public class MyResource {

    private Transport transport;

    @Inject
    public void setTransport(Transport transport) {
        this.transport = transport;
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return transport.encode("Got it!");
    }
}

Interface de transporte:

public interface Transport {
    String encode(String input);
}

E é realização:

public class TransportImpl implements Transport {
    @Override
    public String encode(String input) {
        return "before:".concat(input).concat(":after");
    }
}

Seguindo o manual GettingStarted do Google, eu herdeiAbstractModule e vinculei minhas aulas assim:

public class TransportModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(Transport.class).to(TransportImpl.class);
    }
}

Eu recebo injetormain() com isso, mas realmente não precisa disso aqui:

Injector injector = Guice.createInjector(new TransportModule());

Aliás, não há problema quando tento fazer algo assim:

Transport transport = injector.getInstance(Transport.class);

questionAnswers(2)

yourAnswerToTheQuestion