我有一个@IocProvider ()的问题,注解不起作用。代码与https://docs.jboss.org/author/display/ERRAI/Container+Wiring非常相似
public interface Test {
String getGreeting();
}
@ApplicationScoped
public class TestImpl implements Test {
public String getGreeting() {
return "Hello:)";
}
}
@IOCProvider
@Singleton
public class TestProvider implements Provider<Test> {
@Override
public Test get() {
return new TestImpl();
}
}然后我想在我的广播服务(errai-bus)中使用DI。
@Service
public class BroadcastService implements MessageCallback {
@Inject
Test test;
@Inject
MessageBus bus;
@Inject
public BroadcastService(MessageBus bus) {
this.bus = bus;
}
public void callback(Message message) {
MessageBuilder.createMessage()
.toSubject("BroadcastReceiver")
.with("BroadcastText", test.getGreeting()).errorsHandledBy(new ErrorCallback() {
@Override
public boolean error(Message message, Throwable throwable) {
return true;
}
}).sendNowWith(bus);
}
}我得到一个错误:
1) No implementation for com.gwtplatform.samples.basic.server.Test was bound.
while locating com.gwtplatform.samples.basic.server.Test
for field at com.gwtplatform.samples.basic.server.BroadcastService.test(BroadcastService.java:32)
at org.jboss.errai.bus.server.service.ServiceProcessor$1.configure(ServiceProcessor.java:118)如果我将代码更改为
@Inject
TestImpl test;它起作用了,但我需要提供者。你有什么想法吗?
发布于 2012-10-23 03:26:22
因为您正在尝试在服务器端代码中使用@IOCProvider。Errai IOC完全是客户端的。
https://stackoverflow.com/questions/13009451
复制相似问题