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

这是我在使用 Eclipse 创建第一个 Axis2 Web 服务时得到的错误。在编写了这个类之后,我使用 ApacheAxis2创建了 Web 服务。当我在 eclipse 中单击 start server 按钮时,它会显示一条错误消息:

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

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

我该怎么补救?

193844 次浏览

搜索 server.xml文件并检查您的 <Context>标记,可能对于同一个路径有多个定义。删除副本,它应该为你工作。

看看 答案就在这里

自动格式化 xml 文件(control + shift + f) ,因为第二个 <Context>标签可能在同一行,但是在 viewport 之外,并且离可见的那个非常远。

在 Eclipse 中,转到 服务器项目。打开您正在使用的 Tomcat 版本的树。打开文件 Xml并验证上下文标记。

在 eclipse 中转到 Servers 项目,在运行时服务器配置(在我的例子中是 Tomcat v7.0 Server at localhost-config)下转到 Xml文件,然后搜索 < context > tag, 通常,您会发现多个上下文标记,删除它们,并在适当的服务器上运行您的应用程序。

在我的例子中,我发现了重复的上下文标签:

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

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

在 STS/Eclipse 中,转到“ project Explorer”或“ package Explorer”,然后 有个叫“服务器”的文件夹打开它,你会发现 server.xml文件。在底部的这个文件中,您可以找到类似于

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

您可能会发现需要删除的相同定义的副本。

尝试删除服务器控制台中现有的 tomcat 服务器。如果你没有控制台,那么你可以进入“ Show view-> server”,右键点击删除服务器,然后添加一个新的服务器。

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

另外,如果您复制了一个项目,或者在任何情况下,两个“活动”项目的上下文路径是相同的,那么您必须更改其中一个项目的上下文路径,然后清理 tomcat 服务器设置,然后重新发布服务器

这个更详细的答案

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

  1. 在项目的属性中,选择“ Web 项目设置”。
  2. 更改“ Context root”。
  3. 清理你的服务器
  4. 现在可以重新启动服务器了

在我的例子中,我在标签下的 localhost-config/server.xml 的 Servers/Tomcat5.5中发现了重复路径。

从工作区的. meta/. plugins 中删除 org.eclipse.wst.server.core 和 org.eclipse.wst.server.ui

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

Eclipse > > project Explorer > > server > > server.xml > > tag > > delete copy tag of your project

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

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

在 eclipse 中,使用 tomcat 打开这个 server.xml 文件,找到 Context 标记,这里你会看到你的上下文名称不止一个,你只需删除无用的上下文,然后重启服务器,它就能工作了... ..。

enter image description here

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

在您的 Eclipse IDE on project Explorer 中访问 server.xml,如下所示:

enter image description here

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

enter image description here

如果您正在使用 STS,并且您的服务器是 Pivotal,只需双击服务器,然后点击 > Modulestab > display 配置此服务器上的 Web 模块。 > 您可以删除模块并再次运行。

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


}

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

在这种情况下,请遵循以下步骤。

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

步骤2: 转到 SERVER —— > SERVER.xml —— > find context

示例:-Context docBase = “ JSPandServletDemo”Path = “/JSPandServletDemo” reloadable = “ true”source = “ org.eclipse.jst.jee.server: JSPandServletDemo”/>

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

祝你好运 快乐编码:)

进入服务器 点击 Tomcat 的右键 单击 Add 并删除 然后点击删除所有

这对我来说很容易。如果您创建了服务器,并且您知道服务器文件所在目录的路径,那么您可以简单地打开位于服务器文件夹中的 server.xml 文件。

只需编辑该文件,删除重复的 < Context... > 标记的特定项目运行时抛出的错误以前。

  • 在 Eclipse 中,在 Servers 中,展开 ApacheTomcat
  • 删除所有“上下文”