Tomcat 6.0で新しいWebアプリケーションをデプロイしようとしていますが、スタートボタンをクリックするたびにFAIL-コンテキストパスのアプリケーション/ Helloを開始できませんでしたが繰り返し表示されます。起動ボタンをクリックするたびに、他のデプロイされたアプリケーションが正常に実行されます。しかし、なぜこのアプリケーションではないのですか?
web-xml:
<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">
<servlet>
<servlet-name>j_security_check</servlet-name>
<servlet-class>EmailHander</servlet-class>
</servlet>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/fail_login.html</form-error-page>
</form-login-config>
</login-config>
<web-app>
これは、私がカタリナログファイルで取得している例外です。
Jan 23, 2010 6:49:31 PM org.Apache.catalina.startup.ContextConfig applicationWebConfig
SEVERE: Parse error in application web.xml file at jndi:/localhost/Hello/WEB-INF/web.xml
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.Java:1231)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.Java:522)
at org.Apache.Tomcat.util.digester.Digester.parse(Digester.Java:1644)
at org.Apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.Java:365)
at org.Apache.catalina.startup.ContextConfig.start(ContextConfig.Java:1066)
at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:261)
at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:119)
at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4339)
at org.Apache.catalina.manager.ManagerServlet.start(ManagerServlet.Java:1249)
at org.Apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.Java:612)
at org.Apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.Java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.Java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.Java:717)
at org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:290)
at org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:206)
at org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:233)
at org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:191)
at org.Apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.Java:525)
at org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:128)
at org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:102)
at org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:109)
at org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:293)
at org.Apache.coyote.http11.Http11Processor.process(Http11Processor.Java:849)
at org.Apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.Java:583)
at org.Apache.Tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.Java:454)
at Java.lang.Thread.run(Thread.Java:619)
Web-xmlファイルのそのエラーの理由は何ですか?
web.xml
は<web-app>
で終わりますが、</web-app>
で終わる必要があります
ちなみにこれはほぼ文字通り例外が示すものです。
XMLは、</web-app>
ではなく<web-app>
で閉じる必要があります。
EmailHandler
は本当にサーブレットクラスの完全な名前ですか、つまりcom.something.EmailHandler
のようなパッケージ内にありませんか? web.xml
で完全修飾する必要があります。
私は同じ問題を抱えていましたが、web.xmlのサーブレットURLにスラッシュがありませんでした
取り替える
<servlet-mapping>
<servlet-name>jsonservice</servlet-name>
<url-pattern>jsonservice</url-pattern>
</servlet-mapping>
と
<servlet-mapping>
<servlet-name>jsonservice</servlet-name>
<url-pattern>/jsonservice</url-pattern>
</servlet-mapping>
web.xmlファイルを確認してください。servletContextlistenerがうまく機能していない可能性があります。私の場合はservletContextlistenerを追加して空にして同じエラーを出しましたが、プロジェクトファイルから削除しようとしましたが、まだweb.xmlファイルにあります。最後にweb.xmlから削除してファイルを保存します。プロジェクトを実行し、それが正常に述べた
1番目の理由は、適切に閉じることができなかったアプリケーションのweb.xmlファイルの終了タグである可能性があります。
web.xmlは<web-app>
で終わる可能性がありますが、</web-app>
で終わる必要があります
2番目の理由私の場合は、Tomcatのlibフォルダーがデータベースのサポートjarファイルを含んでいる必要があります。
Oracleの場合はojdbc
、SqlServerの場合はsqljdbc