I can't intercept a rest web service with spring aop pointcut
I use spring aop to intercept a Get web service call, to do that, this is my code:
@Aspect
@Component
public class RestInterceptor {
@Around("@annotation(javax.ws.rs.GET)")
public Object authorizeGetMethod(final ProceedingJoinPoint pjp) {
Object value = null;
try {
value = pjp.proceed();
}
catch (Throwable e) {
e.printStackTrace();
}
return value;
}
}
When I call a Get web service the code above is never called (the web service work correctly) but the same code works when I change the annotation by @annotation(org.springframework.transaction.annotation.Transactional)
Update (edit by @kriegaex, copied from comment):
@Nikolas the code in the interface is
@GET
Response getAll(
@QueryParam("q") String filter,
@QueryParam("field") List<String> fields
);
and the implementation
@Override public Response getAll(String filter, List<String> fields) {
return Response.ok(
// this.getConverter(this.getService().findAll(filter), fields)
).build();
}
java spring jax-rs aspectj spring-aop
|
show 3 more comments
I use spring aop to intercept a Get web service call, to do that, this is my code:
@Aspect
@Component
public class RestInterceptor {
@Around("@annotation(javax.ws.rs.GET)")
public Object authorizeGetMethod(final ProceedingJoinPoint pjp) {
Object value = null;
try {
value = pjp.proceed();
}
catch (Throwable e) {
e.printStackTrace();
}
return value;
}
}
When I call a Get web service the code above is never called (the web service work correctly) but the same code works when I change the annotation by @annotation(org.springframework.transaction.annotation.Transactional)
Update (edit by @kriegaex, copied from comment):
@Nikolas the code in the interface is
@GET
Response getAll(
@QueryParam("q") String filter,
@QueryParam("field") List<String> fields
);
and the implementation
@Override public Response getAll(String filter, List<String> fields) {
return Response.ok(
// this.getConverter(this.getService().findAll(filter), fields)
).build();
}
java spring jax-rs aspectj spring-aop
Please, provide the method with@GET
implementation and it's class header with all the annotations used.
– Nikolas
Nov 23 '18 at 11:59
Do try this@Around("@annotation(get)") public Object authorizeGetMethod(final ProceedingJoinPoint pjp, GET get) { ... }
and share result
– Bond - Java Bond
Nov 23 '18 at 12:02
@Bond-JavaBond i did a test and i had the same behavior; the method inside the aspect class are not called and the web service respond correctly.
– yobs
Nov 23 '18 at 12:18
@Nikolas the code in the interface@GET Response getAll(@QueryParam("q") String filter, @QueryParam("field") List<String> fields);
and the implementation@Override public Response getAll(String filter, List<String> fields) { return Response.ok( // this.getConverter(this.getService().findAll(filter), fields)) .build(); }
– yobs
Nov 23 '18 at 12:25
Try it without using interfaces.
– Paul Samsotha
Nov 25 '18 at 7:18
|
show 3 more comments
I use spring aop to intercept a Get web service call, to do that, this is my code:
@Aspect
@Component
public class RestInterceptor {
@Around("@annotation(javax.ws.rs.GET)")
public Object authorizeGetMethod(final ProceedingJoinPoint pjp) {
Object value = null;
try {
value = pjp.proceed();
}
catch (Throwable e) {
e.printStackTrace();
}
return value;
}
}
When I call a Get web service the code above is never called (the web service work correctly) but the same code works when I change the annotation by @annotation(org.springframework.transaction.annotation.Transactional)
Update (edit by @kriegaex, copied from comment):
@Nikolas the code in the interface is
@GET
Response getAll(
@QueryParam("q") String filter,
@QueryParam("field") List<String> fields
);
and the implementation
@Override public Response getAll(String filter, List<String> fields) {
return Response.ok(
// this.getConverter(this.getService().findAll(filter), fields)
).build();
}
java spring jax-rs aspectj spring-aop
I use spring aop to intercept a Get web service call, to do that, this is my code:
@Aspect
@Component
public class RestInterceptor {
@Around("@annotation(javax.ws.rs.GET)")
public Object authorizeGetMethod(final ProceedingJoinPoint pjp) {
Object value = null;
try {
value = pjp.proceed();
}
catch (Throwable e) {
e.printStackTrace();
}
return value;
}
}
When I call a Get web service the code above is never called (the web service work correctly) but the same code works when I change the annotation by @annotation(org.springframework.transaction.annotation.Transactional)
Update (edit by @kriegaex, copied from comment):
@Nikolas the code in the interface is
@GET
Response getAll(
@QueryParam("q") String filter,
@QueryParam("field") List<String> fields
);
and the implementation
@Override public Response getAll(String filter, List<String> fields) {
return Response.ok(
// this.getConverter(this.getService().findAll(filter), fields)
).build();
}
java spring jax-rs aspectj spring-aop
java spring jax-rs aspectj spring-aop
edited Dec 11 '18 at 5:29
kriegaex
31.3k366101
31.3k366101
asked Nov 23 '18 at 11:35
yobsyobs
62
62
Please, provide the method with@GET
implementation and it's class header with all the annotations used.
– Nikolas
Nov 23 '18 at 11:59
Do try this@Around("@annotation(get)") public Object authorizeGetMethod(final ProceedingJoinPoint pjp, GET get) { ... }
and share result
– Bond - Java Bond
Nov 23 '18 at 12:02
@Bond-JavaBond i did a test and i had the same behavior; the method inside the aspect class are not called and the web service respond correctly.
– yobs
Nov 23 '18 at 12:18
@Nikolas the code in the interface@GET Response getAll(@QueryParam("q") String filter, @QueryParam("field") List<String> fields);
and the implementation@Override public Response getAll(String filter, List<String> fields) { return Response.ok( // this.getConverter(this.getService().findAll(filter), fields)) .build(); }
– yobs
Nov 23 '18 at 12:25
Try it without using interfaces.
– Paul Samsotha
Nov 25 '18 at 7:18
|
show 3 more comments
Please, provide the method with@GET
implementation and it's class header with all the annotations used.
– Nikolas
Nov 23 '18 at 11:59
Do try this@Around("@annotation(get)") public Object authorizeGetMethod(final ProceedingJoinPoint pjp, GET get) { ... }
and share result
– Bond - Java Bond
Nov 23 '18 at 12:02
@Bond-JavaBond i did a test and i had the same behavior; the method inside the aspect class are not called and the web service respond correctly.
– yobs
Nov 23 '18 at 12:18
@Nikolas the code in the interface@GET Response getAll(@QueryParam("q") String filter, @QueryParam("field") List<String> fields);
and the implementation@Override public Response getAll(String filter, List<String> fields) { return Response.ok( // this.getConverter(this.getService().findAll(filter), fields)) .build(); }
– yobs
Nov 23 '18 at 12:25
Try it without using interfaces.
– Paul Samsotha
Nov 25 '18 at 7:18
Please, provide the method with
@GET
implementation and it's class header with all the annotations used.– Nikolas
Nov 23 '18 at 11:59
Please, provide the method with
@GET
implementation and it's class header with all the annotations used.– Nikolas
Nov 23 '18 at 11:59
Do try this
@Around("@annotation(get)") public Object authorizeGetMethod(final ProceedingJoinPoint pjp, GET get) { ... }
and share result– Bond - Java Bond
Nov 23 '18 at 12:02
Do try this
@Around("@annotation(get)") public Object authorizeGetMethod(final ProceedingJoinPoint pjp, GET get) { ... }
and share result– Bond - Java Bond
Nov 23 '18 at 12:02
@Bond-JavaBond i did a test and i had the same behavior; the method inside the aspect class are not called and the web service respond correctly.
– yobs
Nov 23 '18 at 12:18
@Bond-JavaBond i did a test and i had the same behavior; the method inside the aspect class are not called and the web service respond correctly.
– yobs
Nov 23 '18 at 12:18
@Nikolas the code in the interface
@GET Response getAll(@QueryParam("q") String filter, @QueryParam("field") List<String> fields);
and the implementation @Override public Response getAll(String filter, List<String> fields) { return Response.ok( // this.getConverter(this.getService().findAll(filter), fields)) .build(); }
– yobs
Nov 23 '18 at 12:25
@Nikolas the code in the interface
@GET Response getAll(@QueryParam("q") String filter, @QueryParam("field") List<String> fields);
and the implementation @Override public Response getAll(String filter, List<String> fields) { return Response.ok( // this.getConverter(this.getService().findAll(filter), fields)) .build(); }
– yobs
Nov 23 '18 at 12:25
Try it without using interfaces.
– Paul Samsotha
Nov 25 '18 at 7:18
Try it without using interfaces.
– Paul Samsotha
Nov 25 '18 at 7:18
|
show 3 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53445964%2fi-cant-intercept-a-rest-web-service-with-spring-aop-pointcut%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53445964%2fi-cant-intercept-a-rest-web-service-with-spring-aop-pointcut%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Please, provide the method with
@GET
implementation and it's class header with all the annotations used.– Nikolas
Nov 23 '18 at 11:59
Do try this
@Around("@annotation(get)") public Object authorizeGetMethod(final ProceedingJoinPoint pjp, GET get) { ... }
and share result– Bond - Java Bond
Nov 23 '18 at 12:02
@Bond-JavaBond i did a test and i had the same behavior; the method inside the aspect class are not called and the web service respond correctly.
– yobs
Nov 23 '18 at 12:18
@Nikolas the code in the interface
@GET Response getAll(@QueryParam("q") String filter, @QueryParam("field") List<String> fields);
and the implementation@Override public Response getAll(String filter, List<String> fields) { return Response.ok( // this.getConverter(this.getService().findAll(filter), fields)) .build(); }
– yobs
Nov 23 '18 at 12:25
Try it without using interfaces.
– Paul Samsotha
Nov 25 '18 at 7:18