1

我在 Web 应用程序中设置上下文根时遇到问题。我想将上下文根设置为“/”,但是当我启动我的应用程序服务器(jboss-5.1.0.GA)时,出现以下异常:

12:21:23,257 错误 [AbstractKernelController] 安装到开始时出错:name=jboss.web.deployment:war=/ state=Create mode=Manual requiredState=Installed org.jboss.deployers.spi.DeploymentException:Web 映射已经存在用于部署URL 文件:/D:/jboss-5.1.0.GA/jboss-5.1.0.GA/server/letu-prod/deploy/ATG.ear/store.war/ at org.jboss.web.tomcat.service。 deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:187) at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142) at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment. java:461) 在 org.jboss.web.deployers.WebModule.startModule(WebModule.java:118) 在 org.jboss.web.deployers.WebModule.start(WebModule.java:97) 在 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: 597) 在 org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) 在 org.jboss.mx.server.Invocation .invoke(Invocation.java:88) 在 org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 在 org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668) 在 org. jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206) at $Proxy38.start(Unknown Source) at org.jboss.system。microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42) at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37) at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java: 62) 在 org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) 在 org.jboss.dependency.plugins 的 org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) .AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286) 在 org.jboss.dependency。plugins.AbstractController.install(AbstractController.java:1631) at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController.change (AbstractController.java:553) 在 org.jboss.system.ServiceController.doChange(ServiceController.java:688) 在 org.jboss.system.ServiceController.start(ServiceController.java:460) 在 org.jboss.system.deployers。 ServiceDeployer.start(ServiceDeployer.java:163) 在 org.jboss。system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99) at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46) at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy( AbstractSimpleRealDeployer.java:62) at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)在 org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439) 在 org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157) 在 org.jboss.deployers.plugins .deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178) 在 org.jboss.deployers.plugins。deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210) at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098) at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java: 348) 在 org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 在 org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 在 org.jboss.dependency.plugins.AbstractController .resolveContexts(AbstractController.java:1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org. jboss.dependency.plugins.AbstractController。更改(AbstractController.java:553)在 org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) 在 org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)在 org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) 在 org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) .system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) 在 org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361) 在 org.jboss.dependency.plugins .AbstractControllerContext.install(AbstractControllerContext.java:348) 在 org.jboss。org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 上的dependency.plugins.AbstractController.install(AbstractController.java:1631) org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java: 1082) 在 org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 在 org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 在 org.jboss.dependency.plugins.AbstractController .change(AbstractController.java:553) at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306) at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java :271) 在组织。jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 在 org.jboss.Main.boot(Main.java:221) 在 org.jboss.Main$1.run(Main.java:556) 在 java.lang。线程.run(线程.java:662)

有人可以帮我解决这个问题吗?

4

3 回答 3

2

默认。JBoss 的部署文件夹中有一个 ROOT.war,它绑定到 / 上下文。当其他一些应用程序也尝试将其上下文绑定到 / 时,早期版本的 JBoss 没有抛出异常。

请看下面的链接

已存在用于部署的 Web 映射

于 2012-07-23T17:54:48.260 回答
2

我还在使用 eclipse indigo (STS 2.9.2) 运行 jBoss 5.1 我将我的 Web 项目设置保留到我的原始根上下文 myWarName.war 例如在 eclipse 中,但必须将 jBoss.web.xml 文件更改为:

从:

<jboss-web>
     <context-root>myWarName</context-root>
</jboss-web>

至:

<jboss-web>
    <context-root>/</context-root>
</jboss-web>

然后我将 jBoss 部署文件夹下的 ROOT.war 重命名为 jBossROOT.war,如 Arun 的链接中所述,一切正常。我不想删除 ROOT.war,所以我选择了这个选项。

于 2013-03-12T22:37:00.627 回答
1

默认情况下,Web 应用程序的上下文根(也称为上下文路径)设置为 Web 应用程序存档 (WAR) 的根名称(不带 .war 扩展名的名称)。您可以使用用于 EAR 部署的标准应用程序描述符(即 application.xml)或用于独立 WAR 的 JBoss AS Web 描述符(即 jboss-web.xml)覆盖上下文根。让我们先谈谈独立的 WAR。

独立 WAR 部署

您在 jboss-web.xml 中的独立 WAR 中覆盖 Web 应用程序的上下文路径(上下文根),该文件位于 WAR 的 WEB-INF 目录中。在这里,我们将上下文根设置为 /,这就是所谓的根上下文。当应用程序被分配到根上下文时,它将响应所有未被更具体的上下文根处理的请求。

/WEB-INF/jboss-web.xml(在 WAR 中)

<?xml version="1.0" encoding="UTF-8"?>  
<jboss-web>  
    <context-root>/</context-root>  
</jboss-web>  

此文件可以配置许多其他设置。尽管不是必需的,但您可以将 XSD(或在早期版本中为 DTD)添加到 XML 根目录。让我们在 JBoss AS 模式目录中添加 JBoss AS 5.1 的 XSD,并将上下文根更改为 /myapp。

/WEB-INF/jboss-web.xml(在 WAR 中)

<?xml version="1.0" encoding="UTF-8"?>  
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"  
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation="  
      http://www.jboss.com/xml/ns/javaee  
      http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">  
   <context-root>myapp</context-root>  
</jboss-web>

(注意:如果您在部署时遇到问题,只需不使用模式声明即可)。

虽然在独立 WAR 中设置上下文路径的方式是专有的,但当部署在 EAR 中时,Java EE 确实提供了一种将上下文路径分配给 WAR 的标准方法。

EAR 部署

在 EAR 文件中部署 Web 应用程序时,使用 Web 模块内的 context-root 元素在 EAR 的 application.xml 文件中指定上下文根。在以下示例中,bank-webapp.war 应用程序的上下文根设置为 /mymoney。

/META-INF/application.xml(在 EAR 中)

<application version="5" xmlns="http://java.sun.com/xml/ns/javaee"  
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation="  
      http://java.sun.com/xml/ns/javaee  
      http://java.sun.com/xml/ns/javaee/application_5.xsd">  
   <module>  
      <ejb>bank-ejb.jar</ejb>  
   </module>  
   <module>  
      <web>  
         <web-uri>bank-webapp.war</web-uri>  
         <context-root>mymoney</context-root>  
      </web>  
   </module>  
</application>
于 2016-08-05T08:04:26.390 回答