Monday, 15 March 2010

Jersey Spring 3 Integration is not working -



Jersey Spring 3 Integration is not working -

i want migrate simple spring rest project bailiwick of jersey jax-rs specs. next code of project .

i getting 404 error when invoke webservice postman rest client

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

resource class - 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); homecoming (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); homecoming (response.status(200).entity(user)).build(); } @get @path("/ping") @produces(mediatype.text_plain) public string ping() { homecoming "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

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.practice.controller"/> <context:annotation-config/> <mvc:annotation-driven/> </beans>

resource beans 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() { homecoming userid; } public void setuserid(string userid) { this.userid = userid; } public string getusername() { homecoming username; } public void setusername(string username) { this.username = username; } public int getuserage() { homecoming 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() { homecoming userlist; } public void setuserlist(list<user> userlist) { this.userlist = userlist; } }

pom dependancies

<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>

i think in web.xml servlet mapping might wrong. utilize below class in mapping.

com.sun.jersey.spi.spring.container.servlet.springservlet

spring jersey

No comments:

Post a Comment