2017-07-31 22 views
0

ホームページの内容を生成するサーブレットを作成するには、サーブレットマッピングでurl-patternを空にしておいて、AFAIKをコンテキストルートにマップします。 mysite.com/またはhttp:// {ホスト}:{ポート} /個人用サイト/無効な文字列

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

<display-name>My site</display-name> 

<servlet> 
    <servlet-name>controller</servlet-name> 
    <servlet-class>com.mysite.control.MainController</servlet-class> 
    <!-- Load this servlet at server startup time --> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>controller</servlet-name> 
    <url-pattern></url-pattern> 
</servlet-mapping> 

上記は、(ルート要素のWebアプリを除く)完全web.xmlのです。 しかし、Tomcat 7.0.26は、戦争が展開されないため、起動時に次のエラーが発生します。

SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mysite]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958) 
    ... 
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> in servlet mapping 
    at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3208) 
... 

注1:これは、それが春のプロジェクトの純粋なサーブレット3.0プロジェクトであり、単に現時点でのweb.xmlの構成を有していません。

注2:クラスcom.mysite.control.MainControllerは存在します。

どうすればこの問題を解決できますか?私はウェルカムファイルがホームページを模倣するためのオプションだと知っていますが、それは最適ではないので、代わりにこれを修正したいと思います。このTomcat 7.0.26のバグかその他の問題はありますか?

答えて

1

これはTomcatのバグであり、7.0.28から修正されています。 this pageを参照してください。 Tomcatを更新する必要があります。

+0

ありがとう田村孝平:) – AmeetC