2016-11-02 2 views
0

Я использую maven, spring 3 для dynamic project. Я получаю сообщение об ошибке при <bean name="/hello.cs" class="com.maven.controller.HelloController"/> как Multiple annotations found at this line: - Class 'com.maven.controller.HelloController'Ошибка в Maven Spring 3 Динамическое применение

Структура проекта

enter image description here

web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
    <servlet-name>hello</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring.xml</param-value> 
    </init-param> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>hello</servlet-name> 
    <url-pattern>*.cs</url-pattern> 
    </servlet-mapping> 
</web-app> 

Spring.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" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 


    <bean name="/hello.cs" class="com.maven.controller.HelloController"/> 


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

index.jsp

<jsp:forward page="WEB-INF/jsp/home.jsp"></jsp:forward> 

home.jsp

<form action="./hello.cs" method="post"> 
    <div> 
     <div> 
      User Name:<input type="text" name="name"/> 
     </div> 
     <div> 
      Password: <input type="password" name="pass"/> 
     </div> 
     <div> 
      <input type="submit" value="Login"/> 
     </div> 
     <div> 
      <p style="color: red">${msg}</p> 
     </div> 
    </div> 
</form> 

HelloController

package com.maven.controller; 

import java.util.HashMap; 
import java.util.Map; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.AbstractController; 
import org.springframework.web.servlet.mvc.Controller; 

public class HelloController extends AbstractController{ 

    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { 

     String name = req.getParameter("name"); 
     String pwd = req.getParameter("pass"); 

     Map<String, String> m = new HashMap<String, String>(); 

     if(name.equalsIgnoreCase("xyz") && pwd.equalsIgnoreCase("123")){ 

      m.put("msg", "welcome mr. "+req.getParameter("name")); 
      return new ModelAndView("success", m); 
     } else { 
      m.put("msg", "Invalid"); 
      return new ModelAndView("home"); 
     } 
    } 
} 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.javatpoint</groupId> 
    <artifactId>CubeGeneratorWeb</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>CubeGeneratorWeb Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>3.0.0.RELEASE</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 


    </dependencies> 
    <build> 
    <finalName>CubeGeneratorWeb</finalName> 
    </build> 
</project> 

Ошибка: enter image description here

+1

'<имя боб = "/ Hello.cs" класс =/"com.maven.controller.HelloController">' - 'имя = "/ Hello.cs"' боб имя вроде этого кажется необычным .. –

+0

да, я знаю, но можете ли вы рассказать мне, как решить эту ошибку в 'class =" com.maven.controller.HelloController "' –

+0

Что происходит при компиляции проекта? Над ошибкой, которую вы указали, является что-то связанное с eclipse ide – kuhajeyan

ответ

0

После многой борьбы я получил ответ, у меня была ошибка в файле spring.xml. проверьте решения.

Мне нужно добавить код ниже в файле spring.xml.

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
       "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 

ранее я использовал ниже код

<beans xmlns="http://www.springframework.org/schema/beans" 
     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-3.0.xsd"> 

для приведенного выше кода мне нужно изменить pom.xml файл, я имею в виду нужно добавить больше зависимость.

так что это мой последний файл spring.xml для этого вопроса.

spring.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 
      "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 

<beans> 
    <bean name="/hello.sa" class="com.maven.controller.HelloController"/> 

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

EDIT: Это говорит класс 'com.maven.controller.HelloController' не найдено.

Я вижу, что вы кладете com.maven.controller.HelloController.java файл под SRC \ Основные \ ресурсы папку.

enter image description here

Он должен быть под ЦСИ \ главная \ Java папку. Таким образом, иерархия должна быть как

src 
|-main 
    |-java 
     |-com 
     |-maven 
      |-controller 
       |-HelloController.java 

Причиной является структурой каталогов с последующей мавенна обнаруживает Java-файлы только если оно находится в рамках этой иерархии ЦСИ \ главного \ Java, если вы используете конфигурацию по умолчанию.

Вы можете правой кнопкой мыши на проекте и перейти к Properties> Java сборки Path> Источник и проверить, является ли SRC \ главная \ Java запись есть в списке пути сборки или нет? Если не добавить его и повторите попытку.

+0

нет, он не разрешен, он показывает ошибка comiplation как «Несколько аннотаций, найденных в этой строке: \t - Класс 'com.maven.controller.HelloController'' весной.xml –

+0

См. отредактированный пост. структура должна быть как указано выше. –

+0

Я выполнил ваши шаги, но он показывает ту же ошибку. это нужно изменить 'class =" com.maven.controller.HelloController "'? –

Смежные вопросы