2012-01-19 7 views
0

私はgwt spring 3プロジェクトを開始しました。その後、私はこのプロジェクトをやめて、春のセキュリティーを実装しました。spring gwt - 安らかなWebサービスを追加できません - RequestMapping例外

しかし、自分のプロジェクトに快適なコントローラを追加するのに問題があります。基本的には簡単だったはずですが、GWTを使用しているので、設定のいくつかと関係している可能性があります。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.web.bind.annotation.RequestMapping.consumes()[Ljava/lang/String;

私は、これは私が調査し、すべてのサンプルプロジェクトで可能と必要なすべての春の依存関係を使用していますので、私はその別の事を想定しています、私は依存関係のいくつかの種類をしないのですが、私がチェックを意味するだろうと思いました。

@RequestMapping("/api") 
@Controller 
public class TestControler { 

    @RequestMapping("/test") 
    @ResponseBody 
    public String getAll() { 
     return "aba"; 
    } 

以下マイ安らかコントローラマイweb.xml

<context-param> 
     <param-name>defaultHtmlEscape</param-name> 
     <param-value>true</param-value> 
    </context-param> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath*:META-INF/spring/applicationContext*.xml 
     </param-value> 
    </context-param> 

    <filter> 
     <filter-name>CharacterEncodingFilter</filter-name> 
     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
     <init-param> 
      <param-name>forceEncoding</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </filter> 

    <filter> 
     <filter-name>HttpMethodFilter</filter-name> 
     <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> 
    </filter> 

    <filter> 
     <filter-name>Spring OpenEntityManagerInViewFilter</filter-name> 
     <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> 
    </filter>  

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping>  

    <filter-mapping> 
     <filter-name>CharacterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <filter-mapping> 
     <filter-name>HttpMethodFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <filter-mapping> 
     <filter-name>Spring OpenEntityManagerInViewFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping>  

    <!-- Handles Spring requests --> 
    <servlet> 
     <servlet-name>myapp</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>WEB-INF/spring/webmvc-config.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet> 
     <servlet-name>requestFactory</servlet-name> 
     <servlet-class>com.myapp.CustomRequestFactoryServlet</servlet-class> 
    </servlet>  

    <servlet-mapping> 
     <servlet-name>myapp</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping>  

    <servlet-mapping> 
     <servlet-name>requestFactory</servlet-name> 
     <url-pattern>/gwtRequest</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout>10</session-timeout> 
    </session-config> 

マイサーブレットスプリングMVC設定

<context:component-scan base-package="br.ufsc.inf.citymobile" 
    use-default-filters="false"> 
    <context:include-filter expression="org.springframework.stereotype.Controller" 
     type="annotation" /> 
</context:component-scan> 

<mvc:annotation-driven /> 

<mvc:resources location="/, classpath:/META-INF/web-resources/" 
    mapping="/resources/**" /> 

<mvc:default-servlet-handler /> 

<mvc:interceptors> 
    <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" /> 
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" 
     p:paramName="lang" /> 
</mvc:interceptors> 

<mvc:view-controller path="/" view-name="index" /> 
<mvc:view-controller path="/uncaughtException" /> 
<mvc:view-controller path="/resourceNotFound" /> 
<mvc:view-controller path="/dataAccessFailure" /> 

<bean  class="org.springframework.context.support.ReloadableResourceBundleMessageSource" 
    id="messageSource" p:basenames="WEB-INF/i18n/messages,WEB-INF/i18n/application" 
    p:fallbackToSystemLocale="false" /> 

<bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver" 
    id="localeResolver" p:cookieName="locale" /> 

<bean 
    class="org.springframework.ui.context.support.ResourceBundleThemeSource" 
    id="themeSource" /> 

<bean class="org.springframework.web.servlet.theme.CookieThemeResolver" 
    id="themeResolver" p:cookieName="theme" p:defaultThemeName="standard" /> 

<bean  class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" 
    p:defaultErrorView="uncaughtException"> 
    <property name="exceptionMappings"> 
     <props> 
      <prop key=".DataAccessException">dataAccessFailure</prop> 
      <prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop> 
      <prop key=".TypeMismatchException">resourceNotFound</prop> 
      <prop key=".MissingServletRequestParameterException">resourceNotFound</prop> 
     </props> 
    </property> 
</bean> 

<bean 
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver" 
    id="multipartResolver" /> 

マイアプリケーションコンテキスト

<context:annotation-config /> 

<context:property-placeholder location="classpath*:META-INF/spring/*.properties" /> 

<context:spring-configured /> 

<context:component-scan base-package="br.ufsc.inf.citymobile"> 
    <context:exclude-filter expression=".*_Roo_.*" 
     type="regex" /> 
    <context:exclude-filter expression="org.springframework.stereotype.Controller" 
     type="annotation" /> 
</context:component-scan> 

<bean class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close" id="dataSource"> 
    <property name="driverClassName" value="${database.driverClassName}" /> 
    <property name="url" value="${database.url}" /> 
    <property name="username" value="${database.username}" /> 
    <property name="password" value="${database.password}" /> 
    <property name="testOnBorrow" value="true" /> 
    <property name="testOnReturn" value="true" /> 
    <property name="testWhileIdle" value="true" /> 
    <property name="timeBetweenEvictionRunsMillis" value="1800000" /> 
    <property name="numTestsPerEvictionRun" value="3" /> 
    <property name="minEvictableIdleTimeMillis" value="1800000" /> 
</bean> 

<bean class="org.springframework.orm.jpa.JpaTransactionManager" 
    id="transactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 

<tx:annotation-driven mode="aspectj" 
    transaction-manager="transactionManager" /> 

<bean 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
    id="entityManagerFactory"> 
    <property name="persistenceUnitName" value="persistenceUnit" /> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 
+0

膨大な量のコメントをXMLファイルから削除しました。彼らは読みやすさのために何もしていませんでした。 – skaffman

答えて

0

あなたのバージョンのSpringは古すぎます。

Spring 3.1でのみ導入された欠落したメソッド(RequestMapping.consume)の例外があります。これはSpring 3.0にはありません。

あなたはSpring 3.1にアップグレードする必要があります

+0

humm、面白い、私の設定@ @ spring.version> 3.1.0.RELEASEリリースを変更しようとします。 – Lucas

+0

@ルーカス:あなたはクラスパス上に何とか、複数のSpringバージョンで重複しているかもしれません。 – skaffman

+0

正確には、私は、おそらくいくつかのlibがバージョン3.0.6と3.1.0として複製されているspring-webとspring-txを複製していると思います。 – Lucas

関連する問題