0

我正在尝试使用 spring 制作一个简单的 web 应用程序并将其部署在 Tomcat 6 上。当我尝试将它部署在服务器上时,它给了我以下错误。我无法确定问题出在 Tomcat 还是我的应用程序上。

2010 年 2 月 12 日下午 3:45:43 org.apache.tomcat.util.digester.SetPropertiesRule 开始
警告:[SetPropertiesRule]{Server/Service/Engine/Host/Context} 将属性“源”设置为“org.eclipse.jst.jee.server:SpringPOC”未找到匹配的属性。
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.core.AprLifecycleListener 初始化
信息:在 java.library.path:C:\Program Files\Java\jre1.5.0_15\bin;.;C:\WINDOWS\system32 上找不到允许在生产环境中获得最佳性能的基于 APR 的 Apache Tomcat Native 库;C:\WINDOWS;C:/Program Files/Java/jre1.5.0_15/bin/client;C:/Program Files/Java/jre1.5.0_15/bin;C:\WINDOWS\system32;C:\WINDOWS; C:\WINDOWS\System32\Wbem;C:\Program Files\Windows Imaging\;C:\Program Files\Java\jdk1.5.0_15\bin
2010 年 2 月 12 日下午 3:45:43 org.apache.coyote.http11.Http11Protocol 初始化
信息:在 http-8080 上初始化 Coyote HTTP/1.1
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.startup.Catalina 加载
INFO:初始化在 737 毫秒内处理
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.core.StandardService 开始
信息:启动服务 Catalina
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.core.StandardEngine 开始
信息:启动 Servlet 引擎:Apache Tomcat/6.0.20
2010 年 2 月 12 日下午 3:45:43 org.apache.tomcat.util.digester.Digester endElement
严重:结束事件引发异常
java.lang.reflect.InvocationTargetException
      在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
      在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
      在 java.lang.reflect.Method.invoke(未知来源)
      在 org.apache.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:956)
      在 org.apache.catalina.startup.CallMethodMultiRule.end(WebRuleSet.java:789)
      在 org.apache.tomcat.util.digester.Rule.end(Rule.java:229)
      在 org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1140)
      在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(未知来源)
      在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(未知来源)
      在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(未知来源)
      在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知来源)
      在 org.apache.tomcat.util.digester.Digester.parse(Digester.java:1644)
      在 org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365)
      在 org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1066)
      在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
      在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
      在 org.apache.catalina.core.StandardContext.start(StandardContext.java:4339)
      在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      在 org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
      在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      在 org.apache.catalina.core.StandardService.start(StandardService.java:516)
      在 org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
      在 org.apache.catalina.startup.Catalina.start(Catalina.java:583)
      在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
      在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
      在 java.lang.reflect.Method.invoke(未知来源)
      在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
      在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
原因:java.lang.IllegalArgumentException:Servlet 映射指定了未知的 servlet 名称配置文件
      在 org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2470)
      在 org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2450)
      ... 35 更多
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.startup.ContextConfig applicationWebConfig
严重:在 jndi:/localhost/SpringPOC/WEB-INF/web.xml 的应用程序 web.xml 文件中解析错误
java.lang.IllegalArgumentException:Servlet 映射指定了未知的 Servlet 名称配置文件
      在 org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2808)
      在 org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2834)
      在 org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1143)
      在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(未知来源)
      在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(未知来源)
      在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(未知来源)
      在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知来源)
      在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知来源)
      在 org.apache.tomcat.util.digester.Digester.parse(Digester.java:1644)
      在 org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365)
      在 org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1066)
      在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
      在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
      在 org.apache.catalina.core.StandardContext.start(StandardContext.java:4339)
      在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      在 org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
      在 org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      在 org.apache.catalina.core.StandardService.start(StandardService.java:516)
      在 org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
      在 org.apache.catalina.startup.Catalina.start(Catalina.java:583)
      在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)
      在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)
      在 java.lang.reflect.Method.invoke(未知来源)
      在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
      在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.startup.ContextConfig applicationWebConfig
严重:发生在第 8 行第 23 列
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.startup.ContextConfig 开始
严重:由于先前的错误,将此应用程序标记为不可用
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.core.StandardContext 开始
严重:错误 getConfigured
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.core.StandardContext 开始
严重:上下文 [/SpringPOC] 启动因先前的错误而失败
2010 年 2 月 12 日下午 3:45:43 org.apache.coyote.http11.Http11协议开始
信息:在 http-8080 上启动 Coyote HTTP/1.1
2010 年 2 月 12 日下午 3:45:43 org.apache.jk.common.ChannelSocket 初始化
信息:JK:ajp13 监听 /0.0.0.0:8009
2010 年 2 月 12 日下午 3:45:43 org.apache.jk.server.JkMain 开始
信息:Jk 运行 ID=0 时间=0/31 配置=null
2010 年 2 月 12 日下午 3:45:43 org.apache.catalina.startup.Catalina 开始
信息:服务器在 635 毫秒内启动

我的应用程序尝试在一个页面中获取用户名,并在提交时在另一个页面上显示一条欢迎消息,上面写着“美好的一天,<用户名>!”

任何人都可以帮助理解这个例外吗?

谢谢,尼图。

4

3 回答 3

4

我认为问题出在这里:

Parse error in application web.xml file at jndi:/localhost/SpringPOC/WEB-INF/web.xml

和这里:

Servlet mapping specifies an unknown servlet name profile

似乎您想将服务器映射到给定路径,例如:

<servlet-mapping>
  <servlet-name>profile</servlet-name>
  <url-pattern>*</url-pattern>
</servlet-mapping>

但是您缺少像这样的 servlet 定义:

<servlet>
  <servlet-name>profile</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

应该是笔误吧?

于 2010-02-15T05:11:37.373 回答
0

在我将 spring jar 从 web-inf 文件夹移动到 web-inf 的 lib 文件夹后,异常消失了。

于 2010-02-15T12:08:22.083 回答
0

web.xml

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

春季POC

   <servlet-name>profile</servlet-name>

   <url-pattern>/profile</url-pattern>

  <servlet-name>profile</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <load-on-startup>1</load-on-startup>

</servlet>

轮廓

于 2010-02-15T08:46:52.827 回答