javax.servlet.UnavailableException: Parsing error

本文记录了一次因Struts配置文件中form-property标签重复导致的应用启动失败经历,并分享了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2009-04-29 20:57:43 StandardContext[/gmccpos]Loading Spring root WebApplicationContext
2009-04-29 20:57:45 StandardContext[/gmccpos]Marking servlet action as unavailable
2009-04-29 20:57:45 StandardContext[/gmccpos]Servlet /gmccpos threw load() exception
javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
	at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:739)
	at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:715)
	at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
	at javax.servlet.GenericServlet.init(GenericServlet.java:256)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1044)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:887)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3948)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4271)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:850)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
	at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:832)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
	at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
	at org.apache.commons.digester.Rule.end(Rule.java:276)
	at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
	at org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.java:123)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.commons.digester.Digester.parse(Digester.java:1567)
	at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:512)
	at org.apache.catalina.core.StandardHost.install(StandardHost.java:890)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:523)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1002)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:393)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:816)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1125)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:518)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:2343)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:297)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:398)

2009-04-29 20:57:46 StandardContext[/lota]Loading Spring root WebApplicationContext
2009-04-29 20:57:48 StandardContext[/lota]Loading WebApplicationContext for Spring FrameworkServlet 'dispatcherServlet'
2009-04-29 20:58:28 StandardWrapperValve[action]: Servlet action is currently unavailable

 我发现 原来是我的struts-config.xml 里的 form-property 等标签多配了两个重复的!!!去掉就没问题了!!

form-bean name="customizationMenuForm" type="org.apache.struts.action.DynaActionForm">
			<form-property name="group" type="java.lang.String"/>
			<form-property name="userLevel" type="java.lang.String"/>
			<form-property name="serviceCategoryGroupIds" type="java.lang.String"/>
			<form-property name="serviceCategoryGroupIds" type="java.lang.String"/>
		</form-bean>
 
### 回答1: 这个错误提示是指在项目中找不到依赖的javax.servlet-api 3.1.版本。可能是因为该依赖没有被正确添加到项目的依赖列表中,或者版本号不正确。需要检查项目的依赖配置,确保依赖被正确添加,并且版本号与代码中引用的版本号一致。 ### 回答2: 当我们在运行Java Web项目时,可能会遇到类似于“dependency 'javax.servlet:javax.servlet-api:3.1.0' not found”的错误提示。这是因为我们的项目缺少了servlet-api的依赖。 servlet-api是Java Servlet规范的API,是Java Web开发中一种常用的技术。要解决这个问题,我们可以进行如下的操作: 1.检查pom.xml文件:如果我们使用Maven进行项目管理,则可以检查pom.xml文件中是否有servlet-api的依赖。如果没有,则可以手动添加以下代码: <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> 2.检查项目的构建路径:在Eclipse等IDE中,在项目的Build Path中添加servlet-api.jar的路径,可能需要下载相应的jar包。 3.升级Tomcat版本:如果我们使用的是Tomcat服务器,可以尝试升级Tomcat的版本,因为较新的Tomcat版本已经将servlet-api包含在内了。 通过上述的方法,我们可以很快地解决“dependency 'javax.servlet:javax.servlet-api:3.1.0' not found”错误,使得项目可以正常运行。在日常开发中,我们也应该注意依赖的管理,以免出现类似的问题。 ### 回答3: "Dependency 'javax.servlet:javax.servlet-api:3.1.0' not found"通常是Java项目中出现的一个错误信息。这个错误信息意味着在Java项目的配置文件中,需要使用javax.servlet:javax.servlet-api:3.1.0这个依赖包,但是该依赖包缺失或者未被正确地配置。 要解决这个错误,首先需要确认一下项目依赖的配置文件,一般是pom.xml文件。检查pom.xml文件中是否存在这个依赖包的配置,如果没有,需要手动添加。 如果已经添加了该依赖包却仍然提示错误,可能是由于Maven本地仓库缺失了这个包的jar文件引起。这时可尝试手动下载这个依赖包,并加入本地Maven仓库。 此外,还有一种可能是该依赖包所在的远程库无法被正确地访问,解决方法可以是更改远程库地址或者使用其他可用的远程库。可以尝试在pom.xml文件中使用以下代码片段更改远程库地址: ``` <repositories> <repository> <id>central</id> <url>http://repo1.maven.org/maven2</url> </repository> </repositories> ``` 总之,要解决"Dependency 'javax.servlet:javax.servlet-api:3.1.0' not found"错误,需要逐一排查以上可能的原因,找到问题所在并进行相应的更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值