2

私は Java、Java EE、および Tomcat をほぼ一度に独学しようとしています。
(経験豊富な C/Obj-C 開発者)

YouTube のチュートリアルに従っていました: http://www.youtube.com/watch?v=bd50C6XUnFw

私は走っています:

  • アパッチ トムキャット/7.0.47
  • JVM 1.7.0_45-b18
  • Mac OS X 10.8.5 x86_64

私が見ているエラーは次のとおりです。

SEVERE: Parse error in application web.xml file at jndi:/localhost/FirstServlet/WEB-INF/web.xml
org.xml.sax.SAXParseException; systemId: jndi:/localhost/FirstServlet/WEB-INF/web.xml; lineNumber: 8; columnNumber: 19; Error at (8, 19) : Can't convert argument: null
    at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2687)
    at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2719)
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1054)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)

ビデオに示されているように、web.xml (パス/Library/Tomcat/webapps/firstservlet/WEB-INF) は次のとおりです。

<web-app>
    <servlet>
        <servlet-name>My FirstServlet</servlet-name>
        <servlet-class>FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <url-pattern>/myfirstservlet</url-pattern>
    </servlet-mapping>
</web-app>

このエラーは、課題がヌルであることを示しています。</servlet-mapping>

したがって、私の唯一の仮定は、YouTube のチュートリアルに何かが欠けており、議論が欠けているに違いないということです。提案を強く歓迎します。

4

3 に答える 3

3

セクションに欠けていると思い<servlet-name>...</servlet-name>ます<servlet-mapping>

<servlet-mapping>
    <servlet-name>My FirstServlet</servlet-name>
    <url-pattern>/myfirstservlet</url-pattern>
</servlet-mapping>

基本的な web.xml ファイルを見てください

于 2013-12-29T02:44:05.823 に答える
1

エレメント servlet-mapping の間にエレメント servlet-name がありません

<servlet-mapping>
     <servlet-name>MyFirstServlet</servlet-name>
     <url-pattern>/myfirstservlet</url-patter>
</servlet-mapping>

サーブレット名は、URL と特定のサーブレット クラスとの関係を作成する一種の ID です。

于 2013-12-29T02:43:30.237 に答える
0

提案を強く歓迎します。

  1. 唯一の情報源として単一のチュートリアルに依存しないでください...

  2. これらのことが規定されています。疑わしいチュートリアル ビデオなどの「二次ソース」の正確性に疑問がある場合は、仕様を参照してください。

  3. 仕様を読むのが難しすぎる場合は1、信頼できるチュートリアルを探してください。たとえば、Java 関連のものについては、Oracle によって作成されたものを探してください。


1 - 仕様に「鈍感」というラベルを付ける人は、仕様の真の要点を見落としている可能性があります。優れた仕様は、その主な目標として、正確さ、正確さ、および完全性を備えて作成されます。チュートリアルのように読める (いわゆる) 仕様は、その主要な目標を適切に満たしていない可能性が最も高いです。


この場合、サーブレット仕様 3.0servlet-name (セクション 14.4.11) は、一致する要求がどのサーブレットにマップされるかを示す要素が必要であることを明確にしています。

(他のチュートリアルなどで同じ情報を見つけることができるでしょう...)

于 2013-12-29T02:46:44.593 に答える