使用Tomcat在Eclipse中运行Web服务的多个上下文具有相同路径错误

Posted

技术标签:

【中文标题】使用Tomcat在Eclipse中运行Web服务的多个上下文具有相同路径错误【英文标题】:Multiple contexts with the same path error running web service in Eclipse using Tomcat 【发布时间】:2011-11-06 13:33:54 【问题描述】:

这是我在使用 Eclipse 创建第一个 Axis2 Web 服务时遇到的错误。编写完课程后,我使用 Apache Axis2 创建了 Web 服务。当我在 Eclipse 中单击启动服务器按钮时,它会给出一条错误消息:

无法在以下位置发布 Tomcat v6.0 服务器的服务器配置 localhost。多个上下文的路径为“/FirstApache”。

FirstApache 是我之前创建的动态 Web 项目。我从 Web 服务向导的配置部分中选择了正确的 Web 项目。

我该如何解决这个问题?

【问题讨论】:

更简单的答案是右键单击服务器选项卡,转到添加和删除,并且在配置的选项卡中只有您想要的项目 【参考方案1】:

搜索server.xml 文件并检查您的<Context> 标签,可能同一路径有多个定义。删除重复项,它应该适合你。

查看the answer here。

自动格式化 xml 文件 (control + shift + f) 因为第二个 <Context> 标记可能在同一行,但在视口之外,离可见的很远。

【讨论】:

您可以在 workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf 中找到 server.xml 文件(如果这不是您的 Eclipse 默认服务器,请更改 tmp0 ) 我在 eclipse java ee 中创建了一个动态 Web 项目的副本并尝试在副本中运行 JSP 后遇到了这个问题。我该如何解决这个问题? 应该受到保护以避免其他无用的“谢谢”。对答案投赞成票比感谢评论更好。 谢谢,它正在工作,但我很困惑为什么会出现这种重复? 这个解决方案仍然有效,我在 Eclipse V2018-12 上使用 Tomcat 8.5【参考方案2】:

在 STS/Eclipse 中,转到“项目资源管理器”或“包资源管理器”,然后 有一个名为“服务器”的文件夹。打开它,你会发现server.xml 文件。在底部的这个文件中,您可以找到类似

的定义
<Context docBase="myproject" path="/myproject" reloadable="true"
   source="org.eclipse.jst.jee.server:myproject"/>

您可能会发现需要删除的相同定义的重复项。

【讨论】:

添加删除添加的服务器,此行自动多一次 如果应用程序在此之后仍未启动,请转到控制台旁边的“服务器”选项卡并删除位于服务器名称下拉列表中的所有模块。在此之后重新运行项目【参考方案3】:

在 Eclipse 中,转到 Servers 项目。打开您正在使用的 Tomcat 版本的树。打开文件 server.xml 并验证您的上下文标签。

【讨论】:

【参考方案4】:

在项目资源管理器上的 Eclipse IDE 中访问 server.xml,如下所示:

并为您的项目删除带有重复引用的上下文标签:

【讨论】:

【参考方案5】:

转到server.xml 并搜索"Context" 属性名称为"docBase" 的标签。

删除此处的重复行。然后尝试重新启动服务器。

【讨论】:

【参考方案6】:

转到 Eclipse 中的 Servers 项目,在您的运行时服务器配置下(在我的例子中,Tomcat v7.0 服务器位于 localhost-config)转到 server.xml 文件,然后搜索 标记, 通常你会发现不止一个上下文标签,删除它们然后在合适的服务器上运行你的应用程序。

在我的情况下,我发现了重复的上下文标签:

<Context docBase="my-project" path="/my-project" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/&gt;&lt;Context docBase="my-project" path="/smartphone-selfcare" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/></Host>

【讨论】:

【参考方案7】:

在使用 tomcat 的 Eclipse 中,您只需打开此 server.xml 文件并找到 Context 标记,在这里您会看到您的上下文名称不止一个,您只需删除无用的上下文并重新启动您的服务器,它就会工作......

【讨论】:

【参考方案8】:

Eclipse >> 项目资源管理器 >> 服务器 >> server.xml >> 标签 >> 删除项目的重复标签

【讨论】:

【参考方案9】:
    在项目的属性中,选择“Web 项目设置”。 更改“上下文根”。 清理服务器 现在您可以重新启动服务器了

【讨论】:

对于在其工作站的不同位置使用同一应用程序的多个实例的开发人员而言,这是一种出色的解决方案。我发现并非所有 Eclipse/Tomcat 安装的 server.xml 文件中都有 标记。【参考方案10】:

只需在 Eclipse 中删除服务器并再次添加 tomcat 服务器。而不是在 tomcat/bin/shutdown.bat 文件中关闭 tomcat 并在 eclipse 中启动服务器。

【讨论】:

【参考方案11】:

尝试在服务器控制台中删除现有的tomcat服务器。如果您没有控制台,则可以转到“显示视图->服务器”,右键单击该服务器删除该服务器,然后添加一个新服务器。

【讨论】:

【参考方案12】:

如果您使用的是 Tomcat 7 和 Eclipse,请单击 Tomcat 服务器,然后转到模块选项卡。在那里你会找到重复的条目。删除这两个条目并重新部署应用程序。你现在可以走了。

【讨论】:

【参考方案13】:

在相关说明中,如果您复制了一个项目,或者无论如何,对于 2 个“活动”项目具有相同的上下文路径,您必须更改其中一个项目的上下文路径,然后清理 tomcat 服务器设置,然后重新发布服务器

见this in-more detailed answer

【讨论】:

【参考方案14】:

我以前遇到过这个问题。我只是通过扩展tomcat树并删除导致冲突的文件夹来解决它。在你的情况下是/FirstApache。删除后。然后你重新运行它,你应该能够运行。如果再次发生,请将其删除并重试。

【讨论】:

【参考方案15】:

删除代码开头的 server.xml 或 context.xml 中的空格或空行

【讨论】:

【参考方案16】:

就我而言,我在标签下的 localhost-config/server.xml 中的 Servers/Tomcat5.5 中发现了重复的路径。删除重复项解决了问题。

【讨论】:

【参考方案17】:

从 wrokspace 的 .metadata/.plugins 中删除 org.eclipse.wst.server.core 和 org.eclipse.wst.server.ui

从 eclipse 中删除服务器,然后在 eclipse 中重新配置服务器。

【讨论】:

【参考方案18】:

当您复制项目而不是过去,然后您更改该项目的名称时会发生此错误。

在这种情况下,请按照以下步骤操作。

第 1 步:您需要编辑 web.xml 文件。 移除之前项目的 servlet 和 servlet-mapping。

第 2 步:到 SERVER--> server.xml--> 查找上下文

示例:- 上下文 docBase="JSPandServletDemo" path="/JSPandServletDemo" reloadable="true" source="org.eclipse.jst.jee.server:JSPandServletDemo"/>

现在您只需将路径名更改为您当前的项目名称。

祝你好运 快乐编码:)

【讨论】:

【参考方案19】:

转到服务器 在Tomcat上单击右键 单击添加和删除 然后点击全部删除

【讨论】:

【参考方案20】:

如果您使用 STS 并且您的服务器是 Pivotal 只需双击服务器并转到 >Modules 选项卡 >显示在此服务器上配置 Web 模块。>您可以删除模块并再次运行。

【讨论】:

【参考方案21】:
 //Trying to do more than one thing to the object in the same context, 
//the solution is to work on single context objects

public class SingletonContext<TContext>
    where TContext: DbContext,new()

    private static TContext _context;

    private SingletonContext()
    

    
    public static TContext GetInstance()
    
        if (_context == null)
        
            _context = new TContext();
        
        return _context;
    


【讨论】:

以上是关于使用Tomcat在Eclipse中运行Web服务的多个上下文具有相同路径错误的主要内容,如果未能解决你的问题,请参考以下文章

Eelipse关于Web服务器Tomcat的配置

使用 Java、Eclipse 创建 RESTful Web 服务教程。 Apache Tomcat,不工作

eclipse中的web project项目运行 Run As → 1 run on server 出现图上的情况

如何将eclipse项目发布到tomcat ,不通过eclipse运行tomcat

如何在Eclipse配置Tomcat服务器

在eclipse中的tomcat上运行GWT