java - Getting NPE with a Spring REST Service -


i'm building rest service toggle switch between true , false. works singleton i'm trying convert spring application. appreciated. did clean, -u, deleted whole mvn repository , still npe when accessing flag.

when - don't response or npe if try accessing when post -i'm getting sent still not sure if it's updating.

i have 2 classes:

switchflag.java

import org.springframework.stereotype.service;  @service public class switchflag {      private boolean flag;      public boolean getflag() {         return flag;     }      public void setflag(boolean flag) {         this.flag = flag;     }      @override     public string tostring() {         return "{\"flag\":" + flag +"}";     } } 

switchflagservice.java

import javax.ws.rs.consumes; import javax.ws.rs.get; import javax.ws.rs.post; import javax.ws.rs.path; import javax.ws.rs.produces; import javax.ws.rs.core.mediatype; import javax.ws.rs.core.response;  import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller;  @path("/flag") public class switchflagservice {      @autowired     switchflag switchflag;      @get     @path("/get")     @produces(mediatype.application_json)     public switchflag getflag() {         return switchflag;     }      @post     @path("/post")     @consumes(mediatype.application_json)     public response setflag(switchflag flag) {         return response.status(201).entity(flag).build();     } } 

my web.xml

<?xml version="1.0" encoding="utf-8"?>  <web-app id="switchflag" version="2.4"     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://java.sun.com/xml/ns/j2ee      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">     <display-name>flag control</display-name>      <context-param>         <param-name>resteasy.resources</param-name>         <param-value>switchflagservice</param-value>     </context-param>      <listener>         <listener-class>             org.jboss.resteasy.plugins.server.servlet.resteasybootstrap</listener-class>     </listener>     <servlet>         <servlet-name>resteasy-servlet</servlet-name>         <servlet-class>             org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher</servlet-class>     </servlet>      <servlet-mapping>         <servlet-name>resteasy-servlet</servlet-name>         <url-pattern>/*</url-pattern>     </servlet-mapping>  </web-app> 

and finally, snippet of pom.xml - removed dependencies don't need shown such httpcomponents , json

<dependencies>         <dependency>             <groupid>org.jboss.resteasy</groupid>             <artifactid>resteasy-jaxrs</artifactid>             <version>3.0.19.final</version>         </dependency>         <dependency>             <groupid>org.jboss.resteasy</groupid>             <artifactid>resteasy-jackson-provider</artifactid>             <version>3.0.19.final</version>         </dependency>          <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-context</artifactid>             <version>4.3.3.release</version>         </dependency>         <dependency>             <groupid>org.springframework</groupid>             <artifactid>spring-core</artifactid>             <version>4.3.3.release</version>         </dependency>      </dependencies>      <build>             <plugins>             <plugin>                 <artifactid>maven-compiler-plugin</artifactid>                 <version>3.5.1</version>                 <configuration>                     <source>1.7</source>                     <target>1.7</target>                 </configuration>             </plugin>         </plugins>     </build> 

much appreciated

and stack trace :)

2016-11-10 17:02:17.808:warn:oejs.servlethandler:qtp953305190-13: /logflag/flag/get org.jboss.resteasy.spi.unhandledexception: java.lang.nullpointerexception     @ org.jboss.resteasy.core.exceptionhandler.handleapplicationexception(exceptionhandler.java:77)     @ org.jboss.resteasy.core.exceptionhandler.handleexception(exceptionhandler.java:220)     @ org.jboss.resteasy.core.synchronousdispatcher.writeexception(synchronousdispatcher.java:175)     @ org.jboss.resteasy.core.synchronousdispatcher.invoke(synchronousdispatcher.java:418)     @ org.jboss.resteasy.core.synchronousdispatcher.invoke(synchronousdispatcher.java:209)     @ org.jboss.resteasy.plugins.server.servlet.servletcontainerdispatcher.service(servletcontainerdispatcher.java:221)     @ org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher.service(httpservletdispatcher.java:56)     @ org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher.service(httpservletdispatcher.java:51)     @ javax.servlet.http.httpservlet.service(httpservlet.java:790)     @ org.eclipse.jetty.servlet.servletholder.handle(servletholder.java:808)     @ org.eclipse.jetty.servlet.servlethandler.dohandle(servlethandler.java:587)     @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:143)     @ org.eclipse.jetty.security.securityhandler.handle(securityhandler.java:577)     @ org.eclipse.jetty.server.session.sessionhandler.dohandle(sessionhandler.java:223)     @ org.eclipse.jetty.server.handler.contexthandler.dohandle(contexthandler.java:1127)     @ org.eclipse.jetty.servlet.servlethandler.doscope(servlethandler.java:515)     @ org.eclipse.jetty.server.session.sessionhandler.doscope(sessionhandler.java:185)     @ org.eclipse.jetty.server.handler.contexthandler.doscope(contexthandler.java:1061)     @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:141)     @ org.eclipse.jetty.server.handler.handlerlist.handle(handlerlist.java:52)     @ org.eclipse.jetty.server.handler.handlerwrapper.handle(handlerwrapper.java:97)     @ org.eclipse.jetty.server.server.handle(server.java:499)     @ org.eclipse.jetty.server.httpchannel.handle(httpchannel.java:310)     @ org.eclipse.jetty.server.httpconnection.onfillable(httpconnection.java:257)     @ org.eclipse.jetty.io.abstractconnection$2.run(abstractconnection.java:540)     @ org.eclipse.jetty.util.thread.queuedthreadpool.runjob(queuedthreadpool.java:635)     @ org.eclipse.jetty.util.thread.queuedthreadpool$3.run(queuedthreadpool.java:555)     @ java.lang.thread.run(thread.java:745) caused by:  java.lang.nullpointerexception     @ com.bcn.rest.switchflagservice.getflag(switchflagservice.java:25)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.jboss.resteasy.core.methodinjectorimpl.invoke(methodinjectorimpl.java:139)     @ org.jboss.resteasy.core.resourcemethodinvoker.invokeontarget(resourcemethodinvoker.java:295)     @ org.jboss.resteasy.core.resourcemethodinvoker.invoke(resourcemethodinvoker.java:249)     @ org.jboss.resteasy.core.resourcemethodinvoker.invoke(resourcemethodinvoker.java:236)     @ org.jboss.resteasy.core.synchronousdispatcher.invoke(synchronousdispatcher.java:402)     @ org.jboss.resteasy.core.synchronousdispatcher.invoke(synchronousdispatcher.java:209)     @ org.jboss.resteasy.plugins.server.servlet.servletcontainerdispatcher.service(servletcontainerdispatcher.java:221)     @ org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher.service(httpservletdispatcher.java:56)     @ org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher.service(httpservletdispatcher.java:51)     @ javax.servlet.http.httpservlet.service(httpservlet.java:790)     @ org.eclipse.jetty.servlet.servletholder.handle(servletholder.java:808)     @ org.eclipse.jetty.servlet.servlethandler.dohandle(servlethandler.java:587)     @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:143)     @ org.eclipse.jetty.security.securityhandler.handle(securityhandler.java:577)     @ org.eclipse.jetty.server.session.sessionhandler.dohandle(sessionhandler.java:223)     @ org.eclipse.jetty.server.handler.contexthandler.dohandle(contexthandler.java:1127)     @ org.eclipse.jetty.servlet.servlethandler.doscope(servlethandler.java:515)     @ org.eclipse.jetty.server.session.sessionhandler.doscope(sessionhandler.java:185)     @ org.eclipse.jetty.server.handler.contexthandler.doscope(contexthandler.java:1061)     @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:141)     @ org.eclipse.jetty.server.handler.handlerlist.handle(handlerlist.java:52)     @ org.eclipse.jetty.server.handler.handlerwrapper.handle(handlerwrapper.java:97)     @ org.eclipse.jetty.server.server.handle(server.java:499)     @ org.eclipse.jetty.server.httpchannel.handle(httpchannel.java:310)     @ org.eclipse.jetty.server.httpconnection.onfillable(httpconnection.java:257)     @ org.eclipse.jetty.io.abstractconnection$2.run(abstractconnection.java:540)     @ org.eclipse.jetty.util.thread.queuedthreadpool.runjob(queuedthreadpool.java:635)     @ org.eclipse.jetty.util.thread.queuedthreadpool$3.run(queuedthreadpool.java:555)     @ java.lang.thread.run(thread.java:745) 

spring container can not inject beans switchflagservice because annotated @path i.e., spring container scans stereotypes @controller, @component, @service, etc. inject beans.

you need change switchflagservice shown below:

@restcontroller public class switchflagservice  {      @autowired     switchflag switchflag;      @requestmapping(value="/get", method=requestmethod.get)     public switchflag getflag() {         return switchflag;     }      @requestmapping(value="/post", method=requestmethod.post)     public responseentity<switchflag> setflag(switchflag flag) {        return new responseentity<switchflag>(flag, httpstatus.created);     } } 

Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -