java - Error in Rest Service in SpringFramework with @Controller annotation -


i writing simple rest service using springframework , getting below error message while trying access rest service through chrome browser.

error processing request

context path:/simple_app-1.0-snapshot

servlet path:/

path info:null

query string:null

stack trace

org.springframework.web.util.nestedservletexception: request processing failed; nested exception java.lang.nullpointerexception

org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:979)

org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:858)

javax.servlet.http.httpservlet.service(httpservlet.java:687)

org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:843)

here pom.xml

<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0"          xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"          xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">      <modelversion>4.0.0</modelversion>     <name>simple_rest_v1</name>     <groupid>com.rest.app</groupid>     <artifactid>simple_app</artifactid>     <packaging>war</packaging>     <version>1.0-snapshot</version>      <properties>         <spring.version>4.2.6.release</spring.version>     </properties>      <dependencies>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-context-support</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-aop</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-aspects</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-beans</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-context</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-core</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-expression</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-jdbc</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-orm</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-oxm</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-tx</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-web</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-webmvc</artifactid>             <version>${spring.version}</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-webmvc-portlet</artifactid>             <version>${spring.version}</version>         </dependency>          <dependency>             <groupid>io.springfox</groupid>             <artifactid>springfox-swagger2</artifactid>             <version>2.0.1</version>         </dependency>          <dependency>             <groupid>com.fasterxml.jackson.core</groupid>             <artifactid>jackson-core</artifactid>             <version>2.4.1</version>         </dependency>         <dependency>             <groupid>com.fasterxml.jackson.core</groupid>             <artifactid>jackson-databind</artifactid>             <version>2.4.1.1</version>         </dependency>          <dependency>             <groupid>org.codehaus.jackson</groupid>             <artifactid>jackson-mapper-asl</artifactid>             <version>1.9.13</version>         </dependency>          <dependency>             <groupid>org.codehaus.jackson</groupid>             <artifactid>jackson-core-asl</artifactid>             <version>1.9.13</version>         </dependency>      </dependencies>      <build>         <plugins>             <plugin>                 <groupid>org.apache.maven.plugins</groupid>                 <artifactid>maven-war-plugin</artifactid>                 <version>2.1.1</version>                 <configuration>                     <failonmissingwebxml>true</failonmissingwebxml>                 </configuration>             </plugin>         </plugins>     </build>  </project> 

web.xml

<?xml version="1.0" encoding="utf-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"          xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"          xsi:schemalocation="http://java.sun.com/xml/ns/javaee           http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">      <listener>         <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>     </listener>      <servlet>         <servlet-name>restapi</servlet-name>         <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class>         <init-param>             <param-name>contextconfiglocation</param-name>             <param-value>/web-inf/context.xml</param-value>         </init-param>         <load-on-startup>1</load-on-startup>     </servlet>      <servlet-mapping>         <servlet-name>restapi</servlet-name>         <url-pattern>/</url-pattern>     </servlet-mapping>  </web-app> 

and context.xml

<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: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/mvc                            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd                            http://www.springframework.org/schema/context                            http://www.springframework.org/schema/context/spring-context-4.0.xsd">      <context:component-scan base-package="com.sumit.rest.app"/>     <mvc:annotation-driven/>  </beans> 

restcontroller

@controller @requestmapping(value = "/") public class restcontroller {     private static atomiclong counter = new atomiclong();     private final static string template = "hello, %s";      @requestmapping(method = requestmethod.get, headers = "accept=application/json")     @responsebody     public map<string, string> get() {         map<string,string> map = new hashmap<>();         map.put("value","this default response");         return map;     }       @requestmapping(value = "/greet", method = requestmethod.get, headers = "accept=application/json", produces = mediatype.application_json_value)     @responsebody     public greeting getgreeting(@requestparam(value = "name", defaultvalue = "world") string name) {         greeting greet =  new greeting(counter.incrementandget(), string.format(template, name));         system.out.println(greet);         return greet;     }  } 

and greet.java

@jsonautodetect public class greeting {     public final long id;     public final string message;      public greeting(long id, string message) {         this.id = id;         this.message = message;     }      public long getid() {         return id;     }      public string getmessage() {         return message;     }      @override     public string tostring() {         return "id = "+this.id + " , name = "+this.message;     } } 

could please point out missing or making mistake ?

the response expecting on browser json representation of greet class's object.

the above code sample code https://spring.io/guides/gs/rest-service/ difference trying non-spring boot version of sample.

below screenshot of error enter image description here

any appreciated !

thanks in anticipation.

  1. there 2 kinds of application contexts set in case

(which decribed clear enough here purpose of contextloaderlistener – spring mvc , here).

in short if you've configured in 1 spring configuration file don't need contextloaderlistener, while use

<listener>         <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>     </listener> 

it search applicationcontext.xml under web-inf, guess don't have file remove declaration.

enter image description here

enter image description here

  1. if use wildfly 8.1, upgrade newer version.

Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -