【问题标题】:Invalid <url-pattern> null in servlet mapping in Tomcat 7Tomcat 7 中的 servlet 映射中的 <url-pattern> 无效
【发布时间】:2015-09-13 08:27:37
【问题描述】:

我知道我遵循了 servlet 映射规范,并且还使用 Netbeans 7.0 创建了 servlet。

这是我的 web.xml

<servlet>
  <servlet-name>Selection</servlet-name>
  <servlet-class>com.package.sample.Selection</servlet-class>
</servlet>  
<servlet-mapping>
  <servlet-name>Selection</servlet-name>
  <url-patern>/Selection</url-patern>
</servlet-mapping>

关于 catalina 日志文件

严重:部署 Web 应用程序目录客户端时出错 java.lang.IllegalArgumentException:servlet 映射中的 null 无效 在 org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3155) 在 org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3130) 在 org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1301) 在 org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1350) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:316) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607) 在 org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1055) 在 org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:978) 在 org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472) 在 org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) 在 org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) 在 org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:379) 在 org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:324) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) 在 org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:620) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.java:264) 在 java.lang.Thread.run(Thread.java:662)

【问题讨论】:

  • 我的学校教我pattern 的拼写,有一个双t&lt;url-pattern&gt;/Selection&lt;/url-pattern&gt;

标签: java servlets tomcat7


【解决方案1】:

xml文件中pattern的拼写错误。

<servlet>
  <servlet-name>Selection</servlet-name>
  <servlet-class>com.package.sample.Selection</servlet-class>
</servlet>  
<servlet-mapping>
  <servlet-name>Selection</servlet-name>
  <url-pattern>/Selection</url-pattern>
</servlet-mapping>

【讨论】:

  • 这就是答案。但是如果我使用这种格式,无论我用什么类代替“com.package.sample.Selection”都会得到错误:“____ 不能分配给 javax.servlet.Servlet”
猜你喜欢
  • 2015-02-24
  • 2011-12-31
  • 2020-04-11
  • 2010-09-06
  • 2015-10-04
  • 2015-09-14
  • 2015-10-10
  • 2014-08-15
  • 2016-06-10
相关资源
最近更新 更多