如何在 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 > $HOME/web.log 2>1 &
并且为了停止它,我使用了./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 上下文根?