2014-05-25 34 views
0
我在与制作春季数据劳逸结合问题

,我有:发现HTTP请求的URI与使用Spring数据休息没有映射

@RepositoryRestResource(collectionResourceRel = "account", path = "account") 
public interface AccountRepository extends CrudRepository<Account, Long>{ 
    Account findByUsername(String username); 
} 

然而,当资源/account从客户端,我可以看到从访问日志:

[INFO] WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/account] in DispatcherServlet with name 'appServlet' 

小服务程序-context.xml的


<!-- <mvc:annotation-driven/> --> 
<context:annotation-config /> 
<context:component-scan base-package="org.mycompany" /> 
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> 

<!-- Handles HTTP GET requests for /static/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> 
<mvc:resources mapping="/static/**" location="/static/" /> 

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> 

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="atom" value="application/atom+xml"/> 
      <entry key="html" value="text/html"/> 
      <entry key="json" value="application/json"/> 
     </map> 
    </property> 
    <property name="viewResolvers"> 
     <list> 
      <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/> 
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="prefix" value="/WEB-INF/views/"/> 
       <property name="suffix" value=".jsp"/> 
      </bean> 
     </list> 
    </property> 
    <property name="defaultViews"> 
     <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/> 
    </property> 
</bean> 

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
     <list> 
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/> 
     </list> 
    </property> 
</bean> 

<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/> 

而且我使用谷歌的App Engine(GAE)的平台,所以我不能使用Spring启动。

更新:

加入后:

<bean class="org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration" /> 

当我运行的应用程序和访问/占到它抛出:

javax.servlet.UnavailableException: java.lang.NullPointerException 
    at org.mortbay.jetty.servlet.ServletHolder.makeUnavailable(ServletHolder.java:415) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:458) 
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) 
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 
    at org.mortbay.jetty.Server.doStart(Server.java:224) 
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:254) 
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:305) 
    at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26) 
    at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:79) 
    at com.google.appengine.tools.development.Modules.startup(Modules.java:97) 
    at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:255) 
    at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47) 
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:213) 
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:211) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:211) 
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:277) 
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) 
    at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:219) 
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:210) 
+0

如果您扫描日志,您将看到哪些请求处理程序已注册。 –

+0

我只能看到:[信息]信息:org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - 根映射到处理程序'homeController' – xybrek

+0

您的配置可能是关闭的。 –

回答

0

在Spring配置来看,似乎你根本没有激活Spring Data REST。您需要为弹簧数据配置声明bean定义:

<bean class="org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration" /> 
+0

现在我添加它之后,它抛出:javax.servlet.UnavailableException:java.lang.NullPointerException – xybrek

+0

...这是来自GAE内部的,所以我没有想法。 –

相关问题