2016-05-17 4 views
0

Я новичок в maven/spring, и я изо всех сил пытаюсь понять, почему я получаю эти ошибки. Есть куча вопросов, как они в Интернете, однако после попытки использовать решения доступны, я до сих пор не удалось решить мою ошибку:org.springframework.web.servlet.PageNotFound noHandlerFound Error - уже пробовал все, все еще не работает:/

May 17, 2016 7:01:47 PM org.springframework.web.servlet.PageNotFound noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/example/helloWorld/meow] in DispatcherServlet with name 'mvc-dispatcher' 

Моя установка выглядит следующим образом: Apache Tomcat ( я пытаюсь сделать отдыхает API, который позволяет мне загружать и скачивать файлы, а также отправлять сообщения туда и обратно через REST звонков я в настоящее время 3 REST конечных точек определяются:.

  1. /HelloWorld/привет -> GET
  2. /helloWorld/displayMessage/{msg} -> GET
  3. /helloWorld/meow -> POST

Прямо сейчас, только вызовы 1 и 2 работают, а три - то, что вызывает ошибку выше.

Я использую терминал для пинга каждый конечный пункт. Ниже приведен пример вызова, который я делаю для проверки 1 и 2:

curl -X GET localhost:8080/example/helloWorld/hello 

Это работает.

Однако, я получаю ответ 404, а также выше ошибка, когда я делаю эту команду:

curl -X POST localhost:8080/example/helloWorld/meow -d "{'body':1234}" 

Я уверен, что данные, которые я посылаю правильно, но hasn» t дошел до фокуса, потому что, когда я проверяю свой файл catalina.out для своего сервера, я вижу ошибку, о которой я упоминал выше, что означает, что я даже не могу отладить мой запрос, потому что URI не работает.

Существует определенный интерфейс, но мне все равно, поскольку мне просто нужны звонки REST.

Вот мой контроллер:

...imports... 
@Controller 
@RequestMapping("/helloWorld") 
public class HelloWorldController { 

    @RequestMapping(value = "/hello", method = RequestMethod.GET) 
    public String hello(ModelMap model) { 
     model.addAttribute("msg", "JCG Hello World!"); 
     System.out.println(new Date().toString() + "testPrint: in hello"); 
     return "helloWorld"; 
    } 

    @RequestMapping(value = "/displayMessage/{msg}", method = RequestMethod.GET) 
    public String displayMessage(@PathVariable String msg, ModelMap model) { 
     model.addAttribute("msg", msg); 
     System.out.println(new Date().toString() + "testPrint: "+msg); 
     return "helloWorld"; 
    } 

    @RequestMapping(value = "/meow", method = RequestMethod.POST) 
    // @ResponseBody 
    public ResponseEntity<Boolean> saveData(HttpServletRequest request, 
      HttpServletResponse response, Model model) { 
     String jsonString = request.getParameter("json"); 
     System.out.println(new Date().toString() + "testPrint: " + jsonString); 
     return null; 
    } 
} 

Вот мой 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.example.example</groupId> 
    <artifactId>serverExample</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>springexample Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>3.0.5.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.0.1</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>example</finalName> 
    </build> 

    <properties> 
     <spring.version>4.0.2.RELEASE</spring.version> 
    </properties> 
</project> 

Вот мой 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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 

    id="WebApp_ID" version="3.0"> 
    <display-name>Archetype Created Web Application</display-name> 

    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> /WEB-INF/mvc-dispatcher-servlet.xml </param-value> 
    </context-param> 

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

Вот мой MVC-диспетчерская-servlet.xml

<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-3.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 
    <context:annotation-config /> 
    <context:component-scan base-package="com.example.example.thing.*" /> 
    <mvc:annotation-driven /> 
<!--  
    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 
--> 
</beans> 

Кроме того, у меня есть строка:

Существует а * в конце пакета, потому что я прочитал одно решение, что сказал, что добавление * исправлена ​​проблема, но она не фиксирована моя, так что я пока не поняли. Но он не работает с ним или без него.

+0

вы можете проверить свой метод с помощью почтальона и посмотреть, если вы получите тот же результат? – Aditya

ответ

0

Я думаю, что вы можете пропустить -H 'Content-Type:application/json' в команде, попробуйте;)

+0

не работал :(Я буду продолжать пробовать разные вещи, но вставляя это в заголовок сейчас – EndingWithAli

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