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


130

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

无法在本地主机上发布Tomcat v6.0 Server的服务器配置。
多个上下文的路径为“ / FirstApache”。

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

我怎样才能解决这个问题?

Answers:


276

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

在这里查看答案

自动格式化xml文件(control+ shift+ f),因为第二个<Context>标记可能在同一行上,但是在视口之外并且与可见标记确实相距很远。


13
您可以在workspace \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ conf中找到server.xml文件(如果不是您的Eclipse默认服务器,请更改tmp0)
Repoker

在eclipse java ee中创建动态Web项目的副本并尝试在副本中运行JSP后,出现了此问题。我该如何解决这个问题?
艾伦·莫拉德

应加以保护,以避免其他无用的“感谢”。对该答案的最高投票胜过感谢评论。
Dwhitz

谢谢,它正在工作,但是我很困惑为什么会发生这种重复?
Sandip S.

该解决方案仍然有效,我在Eclipse V2018-12上使用Tomcat 8.5
Raymund Arthur

70

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

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

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


1
添加删除已添加的服务器,此行自动再执行一次
Vinayak Shedgeri 16-10-5

如果此后仍无法启动应用程序,请转到控制台旁边的“服务器”选项卡,并删除服务器名称下拉列表中的所有模块。此后重新运行项目
Sameer Sinha


28

在项目浏览器访问的Eclipse IDE中,server.xml如下所示:

在此处输入图片说明

并删除项目中具有重复引用的上下文标记:

在此处输入图片说明



12

转到eclipse中的Servers项目,在运行时服务器配置下(在我的情况下为localhost-config的Tomcat v7.0 Server)转到server.xml文件,然后搜索<context>标记,通常您会找到多个上下文标记,将其删除,然后在可以正常运行的适当服务器中运行您的应用程序。

就我而言,我发现重复的Context标签:

<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>

10

在使用tomcat的eclipse中,您只需打开此server.xml文件并找到Context标签,在这里您会看到上下文名称更多,然后只需删除无用的上下文并重新启动服务器即可使用...。

在此处输入图片说明


5
  1. 在项目的“属性”中,选择“ Web项目设置”。
  2. 更改“上下文根”。
  3. 清洁服务器
  4. 现在您可以重新启动服务器

对于在工作站上的不同位置使用多个应用程序实例的开发人员而言,这是绝佳的解决方案。我发现并不是所有的Eclipse / Tomcat安装都在server.xml文件中具有<Context>标记。
Mindsect队


3

只需在Eclipse中删除服务器,然后再次添加tomcat服务器。比关闭tomcat / bin / shutdown.bat文件中的tomcat并在eclipse中启动服务器。


2

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


2

如果使用的是Tomcat 7和Eclipse,请单击Tomcat服务器,然后转到“模块”选项卡。在那里您将找到重复的条目。删除所有条目并重新部署应用程序。您现在可以出发了。


2

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

看到这个更详细的答案


1

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



0

就我而言,我在位于localhost-config / server.xml的标签下的Servers / Tomcat5.5中找到了重复的路径。删除重复项可以解决此问题。


0

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

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


0

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

在这种情况下,请执行以下步骤。

步骤1:您需要编辑web.xml文件。删除先前项目的servlet和servlet映射。

步骤2:进入SERVER-> server.xml->查找上下文

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

现在,您只需要将路径名更改为当前项目名称即可。

祝你好运编码:)


-1

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


-1
 //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;
    }

}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.