Thanks, but I found this blog post that suggested basically the same thing, but it didn't work.
http://sleeplessinslc.blogspot.com/2009/03/sub-resources-with-jerseyspring-jax-rs.html
One thing that did work was adding a servlet mapping in my web.xml to explicitly look for /reports/testitem. That could work for this toy problem, but doesn't solve the issue for things like /users/{id} since I can't very well explicitly put servlet mapping per entity in my web.xml. Plus, even for this toy problem, that's kind of ugly isn't it? Is there something about web.xml that I don't understand? Here is mine:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"
http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>FactorLab Web Services</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>HibernateFilter</filter-name>
<filter-class>com.factorlab.ws.HibernateSessionRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HibernateFilter</filter-name>
<url-pattern>/obs/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>HibernateFilter</filter-name>
<url-pattern>/phenomenonGroups/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>HibernateFilter</filter-name>
<url-pattern>/reports/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>jersey-spring</servlet-name>
<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>com.factorlab.ws</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.WadlGeneratorConfig</param-name>
<param-value>com.factorlab.ws.FactorLabWADLGenerator</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>jersey-spring</servlet-name>
<url-pattern>/obs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jersey-spring</servlet-name>
<url-pattern>/phenomenonGroups/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jersey-spring</servlet-name>
<url-pattern>/reports/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jersey-spring</servlet-name>
<url-pattern>/reports/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>