2016-08-11 8 views
2

私は、サーバーを実行したとき、私は、コンソールに次のエラーを取得しています:java.lang.NoSuchMethodErrorの:org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation

Error creating bean with name 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMa 
pping#0': Invocation of init method failed; nested exception is 
java.lang.NoSuchMethodError:  
org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation 
(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation; 

そして、Webページ上の404エラー。私はURLをチェックし、リソースは存在しています。ここで

は私のxmlのとおりです。

春-servlet.xml

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

<context:component-scan base-package="com.abhishek"></context:component-scan> 

<mvc:annotation-driven></mvc:annotation-driven> 

<bean id="" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"></property> 
    <property name="suffix" value=".jsp"></property> 
</bean> 


<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"></property> 
    <property name="username" value="system"></property> 
    <property name="password" value="pass"></property> 
</bean> 

<bean id="myJDBC" class="org.springframework.jdbc.core.JdbcTemplate"> 
    <property name="dataSource" ref="myDataSource"></property> 
</bean> 


</beans> 

web.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 
    <display-name>EmployeeDetails</display-name> 
    <servlet> 
     <servlet-name>employeermvc</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 

    <load-on-startup>1</load-on-startup> 
    </servlet> 

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

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

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </context-param> 
</web-app> 

MyControllerクラス

package com.abhishek.controller; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

import com.abhishek.Dao.EmployeeDao; 
import com.abhishek.bean.Employee; 

@Controller 
public class MyController { 

    @Autowired 
    private EmployeeDao dao; 

    @RequestMapping("/") 
    public String newEmployee(ModelMap model) { 
     Employee employee = new Employee(); 
     model.addAttribute("employee", employee); 
     return "create"; 
    } 

    @RequestMapping(value = "/save", method = RequestMethod.POST) 
    public String insertEmployee(@ModelAttribute("employee") Employee employee) { 

     dao.insert(employee); 
     return "inserted"; 

    } 

} 

DAoImplは:

package com.abhishek.Dao; 

import java.util.List; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.jdbc.core.JdbcTemplate; 
import org.springframework.stereotype.Component; 

import com.abhishek.bean.Employee; 

@Component 
public class EmployeeDaoImpl implements EmployeeDao { 

    @Autowired 
    private JdbcTemplate jdbcTemplate; 

    public EmployeeDaoImpl(){ 

    } 

    public EmployeeDaoImpl(JdbcTemplate jdbcTemplate) { 
     super(); 
     this.jdbcTemplate = jdbcTemplate; 
    } 

    @Override 
     public void insert(Employee emp) { 
     String sql="insert into employee(e_id,name,desig,deptt,basic) values(?,?,?,?,?)"; 
     jdbcTemplate.update(sql, emp.getEid(),emp.getName(),emp.getDesg(),emp.getDept(),emp.getBasic()); 
     System.out.println("Record Inserted!!!"); 
    } 
} 
+1

'mvn dependency:tree'を実行し、競合するjarファイルを探します。まだ問題が見えない場合は、pom.xml – bphilipnyc

+0

FYIを投稿してください:** all **これまでに投稿されたコードは、具体的な問題とは完全に関係ありません。 – BalusC

+0

うん問題が解決しました。言及されているすべての人がJarsのバージョンが矛盾しているためにエラーが発生しました。 –

答えて

1

これは、異なるバージョンの複数の同一のjarファイルのoccuringであってもよいです。 Springのバージョンが異なる複数のjarファイルがないことを確認してください。

+0

さまざまなバージョン間で頻繁に切り替えたので、適切なバージョンで必要なjarファイルをダウンロードできる方法はありますか。これは問題の可能性があります。 –

+0

http://spring.io/projects – KPJAVA

1

あなたのBeanはまだ設定されていません。 は、あなたの春-servlet.xmlまた

<bean id="employeeDao" class="com.abhishek.EmployeeDao"> 
    <property name="jdbcTemplate" ref="myJDBC"></property> 
</bean> 
+0

からspring jarsをダウンロードしてみてくださいありがとうございますが、まだ動作していませんでした。 –

1

次のことを検討中で、それを構成します。

  • jarが必要なメソッドかどうかを確認してください。
  • 同じメソッドが2つ以上のjar内にあってはならないので、どちらもjvmにインデックスを渡そうとしているかどうかを確認してください。& JVMが正しく選択するのは混乱します。
  • あなたのjars /依存関係を削除不要にする
  • 必要な依存関係をダウンロードするには、mavenを使用するか、spring.io/projects、grepcodeからダウンロードしてください。
+0

これらは、クラスが見つからないか、そのようなメソッドエラーについてエラーが発生している間に、確認する必要がある基本的な必要なステップです。 –

+0

の手順は実り多いものですが、これらの手順を経て何度も同じ問題に遭遇しました –

+0

はい、あなたは正しいですが、論理的なエラーの理由はわかりませんが、これはjvmに必要なプロパティが不足しているか誤っているためです。だから一般的に私たちはこれが本当に必要なジャーを調べる必要があります。 –

関連する問題