2014-06-24 3 views
1

간단한 스프링 휴식 프로젝트를 저지 JAX-RS 사양으로 마이그레이션하려고합니다. 다음은 프로젝트 코드입니다.저지 스프링 3 통합이 작동하지 않습니다.

나는 404 오류를 얻고 때 우편 배달부 나머지 클라이언트

http://localhost:8080/jerseyproject/users/ping 

자원 클래스에서 호출 된 웹 서비스 - UserController.java

@Component 
@Path("/users") 
public class UserController { 

    private static List<User> userList = new ArrayList<User>(); 
     @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response userList() 
    { 
     //HttpHeaders headers = new HttpHeaders(); 
     //headers.setContentType(MediaType.APPLICATION_JSON); 
     UserList users = new UserList(); 
     users.setUserList(userList); 
     //return new ResponseEntity(users,headers,HttpStatus.OK); 
     return (Response.status(200).entity(users)).build(); 
    } 

    @POST 
    @Produces(MediaType.APPLICATION_JSON) 
    @Consumes(MediaType.APPLICATION_JSON) 
    public Response newUser(User user) 
    { 
     //HttpHeaders headers = new HttpHeaders(); 
     //headers.setContentType(MediaType.APPLICATION_JSON); 
     userList.add(user); 
     return (Response.status(200).entity(user)).build(); 
    } 

    @GET 
    @Path("/ping") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String ping() 
    { 
     return "alive"; 
    } 
} 

의 Web.xml

<web-app> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>\WEB-INF\my-servlet.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <servlet-class> 
      org.glassfish.jersey.servlet.ServletContainer 
     </servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.practice.controller</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

myServlet.xml

012 36,244,

자원 콩 User.java

@JsonPropertyOrder({ 
    "userId", 
    "userName", 
    "userAge" 
}) 
public class User { 

    @JsonProperty("userId") 
    private String userId; 
    @JsonProperty("userName") 
    private String userName; 
    @JsonProperty("userAge") 
    private int userAge; 

    public String getUserId() { 
     return userId; 
    } 
    public void setUserId(String userId) { 
     this.userId = userId; 
    } 
    public String getUserName() { 
     return userName; 
    } 
    public void setUserName(String userName) { 
     this.userName = userName; 
    } 
    public int getUserAge() { 
     return userAge; 
    } 
    public void setUserAge(int userAge) { 
     this.userAge = userAge; 
    } 
} 

UserList.java

@JsonPropertyOrder({ 
    "users" 
}) 
public class UserList { 
    @JsonProperty("users") 
    private List<User> userList; 

    public List<User> getUserList() { 
     return userList; 
    } 
    public void setUserList(List<User> userList) { 
     this.userList = userList; 
    } 
} 

POM 의존성

<dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.0.0.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.0.0.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20090211</version> 
     </dependency> 
     <dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-mapper-asl</artifactId> 
      <version>1.9.13</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.ext</groupId> 
      <artifactId>jersey-spring3</artifactId> 
      <version>2.7</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-web</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-context</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

답변

0

내가 서블릿 매핑이 잘못 될 수있는 당신의 web.xml에 생각합니다. 매핑에서 아래 클래스를 사용하십시오.

com.sun.jersey.spi.spring.container.servlet.SpringServlet 
..이 링크에 대해 참조
+0

문제 해결 http://www.codingpedia.org/ama/tutorial-rest-api-design-and-implementation-in-java-with-jersey-and-spring/ – Harshal

관련 문제