I think you problem is that you are mixing spring an guice (in an
inappropriate way).
I reproduced your above example (by the way, can you tell me from which
library you use Worker and WorkerRepository?).
The code is missing the binding for the worker. I added it.
Next problem is the @Autowire. This is a spring annotation and Guice
will not react to it.
If you replace it with @Inject the sample code is working as expected.
(By the way I would recommend to favor constructor injection over field
injection).
If this does not help. I would suggest you create a minimal reproducible
case and publish it on a github repo so we can fiddle around with it.
On 23.04.2017 11:04, pradrone dev wrote:
Guice module integration issue with REST I have define one AOP guice
based module, but when I tried to integrate with REST code,
methodInvocation.proceed retun null. What might be best way to solve
this issue.
Define AOP Guice based module as below
@Retention <https://github.com/Retention>(RetentionPolicy.RUNTIME)
@Target <https://github.com/Target>(ElementType.METHOD)
@interface <https://github.com/interface> NotOnWeekends {}
public class WeekendBlocker implements MethodInterceptor {
public Object invoke(MethodInvocation invocation) throws Throwable {
|Calendar today = new GregorianCalendar(); if
(today.getDisplayName(DAY_OF_WEEK, LONG, ENGLISH).startsWith("S")) {
throw new IllegalStateException( invocation.getMethod().getName() + "
not allowed on weekends!"); } return invocation.proceed(); |
}
}
public class NotOnWeekendsModule extends AbstractModule {
protected void configure() {
|bindInterceptor(Matchers.any(),
Matchers.annotatedWith(NotOnWeekends.class), new WeekendBlocker()); |
}
}
But I tried to Integrate this with my REST API
|public class WorkerBean implements Worker { @Autowired private
WorkerRepository workerRepository; @Override @NotOnWeekends public
Collection<Worker> findAll() { Collection<Worker> workers =
workerRepository.findAll(); return workers; } |
@RestController <https://github.com/RestController>
public class WorkerController {
|@RequestMapping( value = "/api/workers", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) public
ResponseEntity<Collection<Worker>> getWorkers() { Worker worker =
Guice.createInjector(new
NotOnWeekendsModule()).getInstance(Worker.class); Collection<Worker>
worker = worker.findAll(); // return null .... }|
--
You received this message because you are subscribed to the Google
Groups "google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-guice/cb641bf9-7ada-4021-aa73-20cfe1e15787%40googlegroups.com
<https://groups.google.com/d/msgid/google-guice/cb641bf9-7ada-4021-aa73-20cfe1e15787%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-guice/33550657-d897-01db-58c2-e9d99c50b8b2%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.