users@jersey.java.net

Error using Spring Bean in Jersey resource class - Plz Help!!

From: Jay_K <raj_jai11_at_yahoo.com>
Date: Fri, 19 Mar 2010 07:47:53 -0800 (PST)

Hello,
I am trying to use an existing Spring Bean (which connects to my database)
in Jersey Resource class. But I am getting NullPointerException when trying
to call the method of this bean in my Resource class method. Below is the
code snapshot.

@Path("/portaldetails")
@Component
@Scope("singleton")
public class PortalResource {

        private PersonService personservice;

        public void setPersonservice(PersonService personservice) {
                this.personservice = personservice;
        }
        

        @GET
        @Produces("text/plain")
        public String getLeaveDetails(@QueryParam("portalId") String portalId) {
                
                String portalParam = null;
                String personId = null;
                
                portalParam = portalId;
                
                if(portalParam != null) {
                        // personservice is a Spring bean which inturn access database to fetch
personId from portalId
                        
                        personId = personservice.getPersonId(portalId);
                }
 
                return personId;
        }

My Web.xml has below config

        <servlet>
                <description>Jersey Servlet</description>
                 <display-name>JerseyServlet</display-name>
                 <servlet-name>JerseyServlet</servlet-name>
                 <!--
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
-->
         
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
                 <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>org.unjspf.eleave.service</param-value>
        </init-param>
                 
        <load-on-startup>3</load-on-startup>
        </servlet>
        <servlet-mapping>
                 <servlet-name>JerseyServlet</servlet-name>
                 <url-pattern>/resources/*</url-pattern>
        </servlet-mapping>

The Spring ApplicationContext XML file has below bean definition for
injecting spring bean into Jersey resource
        <bean id="portalservice" class="org.unjspf.eleave.service.PortalResource">
                <property name="personservice"><ref bean="personservice" /></property>
        </bean>


After starting my Websphere server below is the console log.

[3/19/10 11:42:42:086 EDT] 0000000b PackagesResou I Scanning for root
resource and provider classes in the packages:
  org.unjspf.eleave.service
[3/19/10 11:42:42:149 EDT] 0000000b ScanningResou I Root resource classes
found:
  class org.unjspf.eleave.service.PortalResource
[3/19/10 11:42:42:149 EDT] 0000000b ScanningResou I No provider classes
found.
[3/19/10 11:42:42:461 EDT] 0000000b WebApplicatio I Initiating Jersey
application, version 'Jersey: 1.1.5 01/20/2010 03:55 PM'
[3/19/10 11:42:43:571 EDT] 0000000b servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[ELeaveEARProject] [/OnTime] [JerseyServlet]: Initialization successful.

On accessing the Jersey Resource class using below URL I get the following
error.
http://localhost:9081/OnTime/resources/portaldetails?portalId=john12201954

[3/19/10 11:45:40:179 EDT] 0000001a ContainerResp E The RuntimeException
could not be mapped to a response, re-throwing to the HTTP container
                                 java.lang.NullPointerException
        at
org.unjspf.eleave.service.PortalResource.getLeaveDetails(PortalResource.java:81)

-- 
View this message in context: http://n2.nabble.com/Error-using-Spring-Bean-in-Jersey-resource-class-Plz-Help-tp4763799p4763799.html
Sent from the Jersey mailing list archive at Nabble.com.