2017-09-28 36 views
-1

ブラウザで実行しようとするDiceRollServletというサーブレットがあります。しかし、私はそれを働かせることはできませんし、理由を理解することはできません。 web.xmlファイルに名前のマッピングがあり、すべての種類のパスを試しました。ブラウザでサーブレットを開くことができません

http://localhost:8080/AppName/Lottery 
http://localhost:8080/AppName/Lottery.do 
http://localhost:8080/AppName/src/servlets/Lottery 
http://localhost:8080/AppName/src/servlets/Lottery.do 
http://localhost:8080/AppName/target/classes/Lottery 
http://localhost:8080/AppName/target/classes/Lottery.do 

どちらも動作しません。

のweb.xml:

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
     version="2.4"> 

    <display-name>HelloWorld Application</display-name> 
    <description> 
     This is a simple web application with a source code organization 
     based on the recommendations of the Application Developer's Guide. 
    </description> 

    <servlet> 
     <servlet-name>DiceRoll</servlet-name> 
     <servlet-class>servlets.DiceRollServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>DiceRoll</servlet-name> 
     <url-pattern>/Lottery</url-pattern> 
    </servlet-mapping> 

</web-app> 

DiceRollServlet.java:

package servlets; 

import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Random; 


public class DiceRollServlet extends HttpServlet { 
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
     PrintWriter out = response.getWriter(); 

     Random rand = new Random(); 

     out.println("<p>Your random numer is: " + rand.nextInt(100) + "/p>"); 
      } 

} 

フォルダ構造:

tomcat 
    webapps 
     AppName 
      src 
       servlets 
         DiceRollServlet.java 
      pom.xml 
      web.xml 

EDIT:

は、私が移動する必要があります...

は私が

<?xml version="1.0" encoding="UTF-8" ?> 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
     version="2.4"> 

    <display-name>AppName</display-name> 
    <description> 
     This is a simple web application with a source code organization 
     based on the recommendations of the Application Developer's Guide. 
    </description> 

    <servlet> 
     <servlet-name>DiceRoll</servlet-name> 
     <servlet-class>servlets.DiceRollServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>DiceRoll</servlet-name> 
     <url-pattern>/Lottery</url-pattern> 
    </servlet-mapping> 

</web-app> 

tomcat 
    webapps 
     AppName 
      pom.xml 
      WEB-INF 
       web.xml 
       classes 
        servlets 
         DiceRollServlet.java 

とweb.xmlに私のフォルダ構造を変更しかし、それはまだ動作しません。コンパイルされた.classファイルはどこかにありますか?現在はtomcat/webapps/AppName/target/classes/servletsフォルダにあります。

+0

ちょっと分かりません。あなたはアプリを構築するためにmavenを実行しましたか?あなたがした場合、それ以降のフォルダ構造はどのように見えますか? – jingx

+0

あなたのtomcatフォルダ構造が疑わしいようです。あなたは 'src'と' .java'ファイルを持っていますか?あなたのアプリはtomcatサーバーにデプロイされるためにはコンパイルされていないようです。あなたのフォルダ構造には、 'webapps \ AppName \ WEB-INF \ classes'のようなものがあり、' DiceRollServlet.class'を含むあなたのアプリケーションの '.class'ファイル全てがあります。 – pleft

+0

@pleft、私は' WEB- 'main/java'にあるテストクラスの1つは' target/classes/main/java'にコンパイルされますが、そこには 'DiceRollServlet.class'がありません。また、私がよく見ているわけではありませんが、私は 'servlets'フォルダ内のファイルが何らかの理由で認識されていないことを知り(私はintellijを使用しています)、右クリックするとコンパイルオプションはありません。 – parsecer

答えて

0

すべてのサーブレットファイルは、このパス---> (YOUR-DRIVE-PATH)\のapache-tomcatに-7.0.34(YOUR-VERSION)\ webappsに\ AppNameはWEB-INF \クラス\

で存在している必要があります

web.xmlのパス--------> (YOUR-DRIVE-PATH)\のapache-tomcatに-7.0.34(YOUR-VERSION)\ webappsに\ AppNameはWEB-INF \

あなたweb.xmlはこのようになります

<servlet> 
    <servlet-name>DiceRoll</servlet-name> 
    <servlet-class>DiceRollServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>DiceRoll</servlet-name> 
    <url-pattern>/Lottery</url-pattern> 
</servlet-mapping> 
+0

私の 'src'フォルダはどこに置かれるべきですか? 'WEB-INF'の下で? – parsecer

+1

srcフォルダに保存したいファイルはありますか? WEB-INFの外側と内側の両方にsrcフォルダを保存することができます。 .htmlファイルはすべてAppName/YOUR-FILENAME.htmlにあります。 .javaファイルはAppName/WEB-INF/classes/FILENAME.javaにあります web.xmlはAppName/WEB-INFになります/web.xml。 – yatinsingla

+0

私の質問を編集してみてください。 – parsecer

関連する問題