2017-03-26 15 views
1

私は春に単純なリクエストマッピングをしようとしていますが、次のエラーが発生します。例外にサーバが が要求を満たすから、それを防止することを予期しない状態に遭遇したSpring RequestMapping java.lang.IllegalArgumentExceptionエラー

説明を投げたfitTrackerServletサーブレットの

タイプ例外レポート

メッセージのServlet.init()。

java.lang.IllegalArgumentException 
org.springframework.asm.ClassReader.<init>(Unknown Source) 
org.springframework.asm.ClassReader.<init>(Unknown Source) 
org.springframework.asm.ClassReader.<init>(Unknown Source) 
org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:52) 
org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80) 
org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101) 
org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:76) 
org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:298) 
org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:300) 
org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:300) 
org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:230) 
org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:153) 
org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:130) 
org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:285) 
org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223) 
org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630) 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) 
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:647) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:598) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:661) 
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:517) 
org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:458) 
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:138) 
javax.servlet.GenericServlet.init(GenericServlet.java:158) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:495) 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:767) 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1354) 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Thread.java:745) 

誰かがこのエラーを克服するために私を助けることができます。 これに関連するコードの変更は次のとおりです。

HelloController.java

package com.mycompany.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
public class HelloController { 

    @RequestMapping(value = "/greeting") 
    public String sayHello(Model model) { 

     model.addAttribute("greeting", "Hello World!!"); 

     return "hello"; 
    } 

} 

Hello.jspの

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Hello World</title> 
</head> 
<body> 
    <h1>${greeting}</h1> 
</body> 
</html> 

サーブレット-config.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 

    <mvc:annotation-driven /> 
    <context:component-scan base-package="com.mycompany.controller" /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
     p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> 

</beans> 

のweb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <servlet> 
     <servlet-name>fitTrackerServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/config/servlet-config.xml</param-value> 
     </init-param> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>fitTrackerServlet</servlet-name> 
     <url-pattern>*.html</url-pattern> 

    </servlet-mapping> 

    <display-name>Archetype Created Web Application</display-name> 
</web-app> 
+1

バージョンミスマッチのような匂いがどこかにあります。可能であれば、新しいプロジェクトのためにSpringブートを開始するのが最善です(https://start.spring.ioを参照)。 – chrylis

+1

あなたはspring-mvc-3.2を使用しています。 spring-mvc 5.0.xへのアップデート。それはそこにある。 –

+0

こんにちはChrylisと@georgesvan あなたは正しいです。それはバージョンの不一致でした。それは私のために4.3.7.RELEASEバージョンで働いた。 ご協力ありがとうございます。 – Sameera

答えて

0

value="/greeting"value="/hello"

1

に置き換えてください。Java 1.8を使用している場合は、Spring 3.2.16以降が必要です。あなたのpom.xmlを正しいspringバージョンで更新して問題を解決してください。

関連する問題