如何在 Wildfly 中定义上下文路径?

Posted

技术标签:

【中文标题】如何在 Wildfly 中定义上下文路径?【英文标题】:How to define Context Path in Wildfly? 【发布时间】:2015-04-12 19:10:55 【问题描述】:

我使用以下代码在 tomcat 中设置上下文路径,我可以通过覆盖 tomcat 的默认路径直接使用localhost:8080 访问我的应用程序。

<Context path="" docBase="G:\bitbucket\projectpath\project\build\libs\project-1.0" workDir="G:\bitbucket\projectpath\project\build\libs\project-1.0\work"  debug="0" reloadable="false" autoDeploy="true" unpackWARs="true" crossContext="true"/>

现在我将使用 wildfly-8.2.0 作为运行时环境。我尝试将 .war 文件直接粘贴到 G:\wildfly-8.2.0.Final\standalone\deployments 中,我可以在浏览器中访问我的项目,例如 localhost:8080/project-1.0

我需要像在 tomcat 中所做的那样为 wildfly 设置相同的配置,以通过覆盖 wildfly 的默认欢迎页面来访问我在localhost:8080 中的项目。我试图在wildfly中做同样的事情,但我被困在哪里做那件事。 Wildfly 文件夹中有很多 .xml 文件(与 tomcat 的简单 server.xml 文件相比),我对从哪里开始感到困惑。我使用“如何在 Wildfly 中设置上下文路径”进行搜索,但没有成功。任何人都可以帮助我如何做到这一点..?如果它与编码有关,那么我可以进行大量搜索,至少我可以获得一些想法,但我被困在配置中。提前致谢。

【问题讨论】:

【参考方案1】:

您可以通过在您部署的应用程序中添加 /WEB-INF/jboss-web.xml 文件来执行此操作:

<?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>/</context-root>
</jboss-web>

【讨论】:

得到它的工作.. 谢谢.. 顺便说一句,我遇到了一个奇怪的问题,我已经使用这个命令启动了 wildfly,./standalone.sh -b xxx.xx.xx.xxx &gt; $HOME/web.log 2&gt;1 &amp; 并且为了停止它,我使用了./jboss-cli.sh --connect command=:shutdown ..一切正常,如果我启动服务器,我可以访问相应的网站,如果我停止服务器访问该网站,chrome 会告诉我“服务器没有响应”。但是一旦我把手放在 sqlserver 上,就会发生一些奇怪的事情。 我在 sqlserver 中使用转储创建了一个数据库,然后每当我部署我的 .war 文件时,它都会因为部署失败而不断出现,我尝试了很多。即使在我使用关机命令之后,我也可以访问给我 404 not found 消息的站点。我认为一个进程正在免费中运行,即使在关闭命令之后也不会停止。你知道我该如何解决吗? 当您启动进程时,使用标准输出重定向日志不是一个好方法。最好从日志配置中删除控制台附加程序,以避免填满$HOME/web.log 中的文件系统。只需从根记录器中删除控制台处理程序。您可以使用 boss-cli 再次添加它而无需在服务器上重新启动。 如果有人想知道:xml命名空间的当前schemaLocation是xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_7_2.xsd" 如果您想使用 /,您可能还必须删除 Wildfly 发行版的 welcome-content 文件夹。【参考方案2】:

使用注释直接在 WebService 类中更改上下文根。

import org.jboss.ws.api.annotation.WebContext;

@Stateless
@WebService(portName = "SampleWSPort", serviceName = "SampleWS")
@SOAPBinding(style = Style.DOCUMENT)
@WebContext(contextRoot = "/SWS", urlPattern = "/SampleWS")
public class SampleWS implements SampleWSInterface 

org.jboss.ws.api.annotation.WebContext 在 MAVEN 工件中:

<dependency>
   <groupId>org.jboss.ws</groupId>
   <artifactId>jbossws-api</artifactId>
   <version>1.1.2.Final</version>
</dependency>

【讨论】:

我认为依赖不正确,库没有@WebContect注解。 非常好的解决方案,适用于 WildFly 12!

以上是关于如何在 Wildfly 中定义上下文路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WildFly 10 中 @Inject 一个 JMSContext?

如何将上下文文件从 Wildfly 添加到 JHipster

如何使用无 XML 的 Spring Web 应用程序设置 JBoss Wildfly 上下文根?

如何在 Wildfly 中提供自定义身份验证/授权管理器

在 Wildfly 9 上部署 EAR 具有原始 WAR 和复制 WAR

如何在 Wildfly 中使用 CLI 设置消息传递子系统