WildFly 8.1.0最终Windows Server 2012 R2
我有两个子域指向此服务器,我希望每个子域的请求触发不同的war文件: -
webapp.domain1.com -> WildFly Server -> myapp1.war
test.domain2.net -> WildFly Server -> myapp2.war
Run Code Online (Sandbox Code Playgroud)
我的standalone.xml文件目前根据JBoss开发人员站点上收到的建议配置如下: -
<subsystem xmlns="urn:jboss:domain:undertow:1.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" default-web-module="myapp1.war" alias="webapp.domain1.com"/>
<host name="other-host" default-web-module="myapp2.war" alias="test.domain2.net"/>
</server>
<servlet-container name="default">
<jsp-config/>
</servlet-container>
<filters>
<response-header name="server-header" header-value="WildFly/8" header-name="Server"/>
<response-header name="x-powered-by-header" header-value="Undertow/1" header-name="X-Powered-By"/>
</filters>
</subsystem>
Run Code Online (Sandbox Code Playgroud)
将浏览器指向webapp.domain1.com或test.domain2.net会导致请求按预期发送到WildFly服务器,但在这两种情况下都会触发相同的war文件(myapp1.war).
按如下方式切换<host ... />元素的'name'值会导致myapp2.war被调用,无论使用哪个URL: -
<host name="other-host" default-web-module="myapp1.war" alias="webapp.domain1.com"/>
<host name="default-host" default-web-module="myapp2.war" alias="test.domain2.net"/>
Run Code Online (Sandbox Code Playgroud)
看起来Undertow只处理"default-host"条目的细节.
这里有人可以帮忙吗?
如果不这样做,是否有人知道WildFly是否(以及如何)与Apache Web Server一起使用?
经过一些实验,这在使用CDI bean时似乎是一个问题,而与PrimeFaces无关,这是我最初的假设.
如果我使用@ManagedBean将TableBeanLazy更改为Managed Bean,那么构造函数和@PostConstruct方法只会被调用一次,正如我所期望的那样.
任何人都可以对此有所了解吗?
================================================== =
我是JSF和PrimeFaces的新手,所以任何指导都将非常感谢.我搜索了其他帖子,并阅读了一些类似的帖子,但找不到解决方案.
我试图在我的项目中的PrimeFaces Showcase站点上获取延迟加载数据表示例,但由于bean类的行为不像我期望的那样,我遇到了问题.
我对PrimeFaces站点的示例代码进行了一些更改: - 将TableBean类重命名为TableBeanLazy; 在课堂上添加了注释; 分配静态字符串数组; 将初始化从构造函数移动到@PostConstruct initialise()方法; 分配了汽车成员变量.
我还在构造函数和@PostConstruct方法中添加了跟踪消息,这些消息显示在第一次显示表时多次调用它们,每次单击搜索图标时多次调用,并且多次使用每个字符条目过滤领域.
这导致每次执行操作时都会重新创建Car对象的随机列表,因此sort和filter将永远不会产生预期的结果 - 这是在PrimeFaces Showcase站点上直接运行示例时所做的.
虽然我最初使用@ViewScoped,但我也尝试过@RequestScoped,最后是@SessionScoped,但所有行为都是一样的.
多次调用构造函数和@PostConstruct是bean的预期行为?
如果是这样,PrimeFaces Showcase网站上给出的示例代码怎么可能有效呢?
我该如何解决这个问题?
环境
PrimeFaces 3.5
JSF 2.1
JDK 1.7
GlassFish Server Open Source Edition 3.1.2.2 (build 5)
Mojarra 2.1.6 (SNAPSHOT 20111206)
Netbeans IDE 7.3
Windows 7 Pro x64
Run Code Online (Sandbox Code Playgroud)
MyTable.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="./resources/templates/platform_tpl.xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:define name="body">
<h2 style="margin-top: …Run Code Online (Sandbox Code Playgroud) 使用WildFly 8时,将浏览器指向显示localhost:8080默认welcome-content页面的结果.
我想改变这种行为,以便myapplication.war显示.
我的standalone.xml文件目前包含以下默认配置: -
<server name="default-server">
<http-listener name="default" socket-binding="http"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
Run Code Online (Sandbox Code Playgroud)
我在JBossDeveloper论坛上发现了一些帖子,建议如下: -
<host name="default-host" alias="localhost" default-web-module="name-of-your.war">
Run Code Online (Sandbox Code Playgroud)
只是添加default-web-module参数似乎不起作用,因为welcome-content页面仍然显示.
从该部分中删除location和filter-ref项目将host停止welcome-content显示的页面,但会导致HTTP 404 - Not found错误.
谁能告诉我如何解决这个问题?