Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts 2.5.5中的Maven依赖项和Tomcat异常_Java_Eclipse_Maven_Tomcat - Fatal编程技术网

Java Struts 2.5.5中的Maven依赖项和Tomcat异常

Java Struts 2.5.5中的Maven依赖项和Tomcat异常,java,eclipse,maven,tomcat,Java,Eclipse,Maven,Tomcat,我的环境配置有问题。我正在使用EclipseNeon.1、Tomcat8.5、JavaVersion1.8.0\u77,并试图用Struts2.5.5创建一个简单的HelloWorld 如果我手动将Struts 2.5.5 JAR添加到WEB-INF/lib文件夹中,一切正常,但是如果我通过Maven添加Struts依赖项,当我在服务器上运行我的项目时,Tomcat会启动一个索引越界异常 此问题仅在Struts的最新版本(2.5.5)中出现。事实上,如果我将struts2 core 2.3.31

我的环境配置有问题。我正在使用EclipseNeon.1、Tomcat8.5、JavaVersion1.8.0\u77,并试图用Struts2.5.5创建一个简单的HelloWorld

如果我手动将Struts 2.5.5 JAR添加到WEB-INF/lib文件夹中,一切正常,但是如果我通过Maven添加Struts依赖项,当我在服务器上运行我的项目时,Tomcat会启动一个索引越界异常

此问题仅在Struts的最新版本(2.5.5)中出现。事实上,如果我将struts2 core 2.3.31添加到
pom.xml
(而不是2.5.5),那么一切都很好

我已经试过使用Tomcat7、Tomcat8和EclipseMars

我创建了一个动态Web项目,然后将其转换为Maven项目; 我还直接创建了一个Maven项目,但问题仍然存在

有什么办法解决这个问题吗

编辑:我在.metadata文件夹的.log文件中找到了异常的整个堆栈跟踪

!条目org.eclipse.wst.server.core 4 0 2016-12-01 19:21:09.917
!消息无法发布到服务器。
!堆栈0
java.lang.IndexOutOfBoundsException
在java.io.BufferedInputStream.read处(BufferedInputStream.java:338)
位于org.eclipse.jdt.internal.compiler.util.util.getInputStreamAsByteArray(util.java:500)
位于org.eclipse.jdt.core.ToolFactory.createDefaultClassFileReader(ToolFactory.java:311)
位于org.eclipse.jst.j2ee.internal.archive.JavaEEArchiveUtilities.isEJBArchive(JavaEEArchiveUtilities.java:909)
位于org.eclipse.jst.j2ee.internal.archive.JavaEEArchiveUtilities.refineForJavaEE(JavaEEArchiveUtilities.java:615)
位于org.eclipse.jst.j2ee.internal.archive.JavaEEArchiveUtilities.openArchive(JavaEEArchiveUtilities.java:377)
位于org.eclipse.jst.j2ee.internal.archive.JavaEEArchiveUtilities.openBinaryArchive(JavaEEArchiveUtilities.java:297)
位于org.eclipse.jst.j2ee.internal.componentcore.JavaEEBinaryComponentHelper$ArchiveCache.openArchive(JavaEEBinaryComponentHelper.java:612)
位于org.eclipse.jst.j2ee.internal.componentcore.JavaEEBinaryComponentHelper.openArchive(JavaEEBinaryComponentHelper.java:470)
位于org.eclipse.jst.j2ee.internal.componentcore.JavaEEBinaryComponentHelper.getUniqueArchive(JavaEEBinaryComponentHelper.java:422)
位于org.eclipse.jst.j2ee.internal.componentcore.JavaEEBinaryComponentHelper.getArchive(JavaEEBinaryComponentHelper.java:415)
位于org.eclipse.jst.j2ee.internal.componentcore.JavaEEBinaryComponentHelper.getJavaEEQuickPeek(JavaEEBinaryComponentHelper.java:98)
位于org.eclipse.jst.j2ee.project.JavaEEProjectUtilities.getJ2EEComponentType(JavaEEProjectUtilities.java:273)
位于org.eclipse.jst.j2ee.internal.common.exportmodel.jeeheierarchyexportparticipant.isChildModule(jeeheierarchyexportparticipant.java:42)
位于org.eclipse.wst.common.componentcore.internal.flat.globalheirarchypparticipant.isChildModule(globalheirarchypparticipant.java:41)
位于org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.isChildModule(FlatVirtualComponent.java:367)
位于org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.addUsedReferences(FlatVirtualComponent.java:305)
位于org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.treeWalk(FlatVirtualComponent.java:235)
位于org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.cacheResources(FlatVirtualComponent.java:188)
位于org.eclipse.wst.common.componentcore.internal.flat.FlatVirtualComponent.fetchResources(FlatVirtualComponent.java:118)
位于org.eclipse.wst.web.internal.deployables.FlatComponentDeployable.members(FlatComponentDeployable.java:227)
位于org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable.members(J2EEFlexProjDeployable.java:267)
位于org.eclipse.wst.server.core.internal.ModulePublishInfo.fillCache(ModulePublishInfo.java:314)
位于org.eclipse.wst.server.core.internal.ModulePublishInfo.getDelta(ModulePublishInfo.java:396)
位于org.eclipse.wst.server.core.internal.ServerPublishInfo.getDelta(ServerPublishInfo.java:366)
位于org.eclipse.wst.server.core.internal.server.getPublishedResourceDelta(server.java:1578)
位于org.eclipse.wst.server.core.model.ServerBehaviorDelegate.getPublishedResourceDelta(ServerBehaviorDelegate.java:698)
位于org.eclipse.jst.server.tomcat.core.internal.TomcatServerBehavior.getPublishedResourceDelta(TomcatServerBehavior.java:958)
位于org.eclipse.wst.server.core.model.ServerBehaviorDelegate.computeDelta(ServerBehaviorDelegate.java:874)
位于org.eclipse.wst.server.core.model.ServerBehaviorDelegate.publish(serverBehaviorDelegate.java:909)
位于org.eclipse.wst.server.core.model.ServerBehaviorDelegate.publish(serverBehaviorDelegate.java:774)
位于org.eclipse.wst.server.core.internal.server.publishImpl(server.java:3172)
位于org.eclipse.wst.server.core.internal.server$PublishJob.run(server.java:345)
位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
这是我的pom.xml


4.0.0
基本支柱
基本支柱
0.0.1-快照
战争
org.apache.struts
struts2型芯
2.5.5
基本支柱
src
maven编译器插件
3.5.1
1.8
1.8
maven战争插件
3.0.0
网络内容

经过几天的研究,我明白了如何解决这个问题,现在我告诉你怎么做

  • 近食
  • 删除C:\Users[username].m2\repository的内容(如果需要) 使用Windows)或~/.m2/存储库(如果您使用的是macOS)
  • 重新打开Eclipse,右键单击项目,选择“Maven”,“Update” 项目…,选中“强制更新快照/发布”,然后 单击“确定”
  • 在Tomcat服务器上运行您的项目:它现在应该可以工作了 我希望这本迷你指南能帮助那些有同样问题的人。

    经过几天的研究