2014-05-25 32 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內部的,所以我沒有想法。 –

相關問題