eclipse-ee4j / eclipse-ee4j/jersey
Error occured when create restful api with jersey2.22.2 + spring4.1.7
- Dominant language
- Java
- Stars
- 730
- Forks
- 382
- PR merge metrics
- No merged PRs in 30d
Description
```
**pom.xml**
org.glassfish.jersey.containers
jersey-container-servlet-core
2.22.2
org.glassfish.jersey.ext
jersey-spring3
2.22.2
org.springframework
spring-core
org.springframework
spring-web
org.springframework
spring-beans
org.springframework
spring-context
org.springframework
spring-aop
org.codehaus.jackson
jackson-core-asl
org.codehaus.jackson
jackson-mapper-asl
org.codehaus.jackson
jackson-jaxrs
1.9.12
```
```
**web.xml**
jersey restful
org.glassfish.jersey.servlet.ServletContainer
javax.ws.rs.Application
com.boco.gpsp.rest.RestApplicationInit
1
jersey restful
/rest/*
```
```
**RestApplicationInit**package com.boco.gpsp.rest;
import javax.ws.rs.ApplicationPath;
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.spring.scope.RequestContextFilter;
import com.boco.gpsp.rest.resource.UserResource;
@ApplicationPath("/rest")
public class RestApplicationInit extends ResourceConfig{
public RestApplicationInit() {
packages("com.boco.gpsp.rest.resource");
register(UserResource.class);
register(JacksonJsonProvider.class);
register(RequestContextFilter.class);
register(LoggingFilter.class);
}
}
```
```
**UserResource**package com.boco.gpsp.rest.resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.boco.gpsp.service.UserService;
@Path("users")
@Component
public class UserResource {
@Autowired
private UserService userService;
@GET
@Path("{name}")
@Produces(MediaType.TEXT_PLAIN)
public String search(@PathParam("id") String name) {
return userService.getUserByName(name);
}
}
```
```
**UserService**package com.boco.gpsp.service;
import org.springframework.stereotype.Service;
import com.boco.gpsp.service.UserService;
@Service
public class UserService {
public String getUserByName(String name) {
return "user: name=" + name;
}
}
```
```
**spring-servlet.xml**
```
When i test my api in chrome by :
[http://localhost:9090/app/rest/users/jack](http://localhost:9090/app/rest/users/jack)
error appeared as below:
javax.servlet.ServletException: A MultiException has 3 exceptions. They are:
1\. org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.boco.gpsp.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
2\. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of com.boco.gpsp.rest.resource.UserResource errors were found
3\. java.lang.IllegalStateException: Unable to perform operation: resolve on com.boco.gpsp.rest.resource.UserResource
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489)
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
#### Environment
windows 64bit, tomcat7.x, JDK7, apache maven 3.3.3
#### Affected Versions
[2.22.2]
Contributor guide
Assessment
This issue has not been assessed yet.