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の( 。アップロードしたファイルをダウンロードするだけでなく、前後にREST呼び出しを介して、私は現在3つのRESTエンドポイントが定義されているメッセージを送信するために私を可能RESTのAPI:

  1. /helloworldに/ハロー - > GET
  2. /helloWorld/displayMessage/{msg} - > GET
  3. /helloWorld/meow - > POST

今のところ、1と2の呼び出しだけが機能し、3つは上記のエラーの原因です。

私は端末を使用して各エンドポイントをpingしています。ここでは、テスト1と2の呼び出しの例を示します。

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

これは機能します。

私は、このコマンドを実行するときしかし、私は、404応答並びに上記のエラーを取得:

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

私が送信していたデータが正しいことをかなり確信しているが、それは「hasn私のサーバ用の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

関連する問題