Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将子域定向到正确的JBoss应用程序?_Java_Tomcat_Jboss_Subdomain_Virtualhost - Fatal编程技术网

Java 如何将子域定向到正确的JBoss应用程序?

Java 如何将子域定向到正确的JBoss应用程序?,java,tomcat,jboss,subdomain,virtualhost,Java,Tomcat,Jboss,Subdomain,Virtualhost,JBoss新手,我正在配置一些应用程序。我知道如何在ApacheWebServer中实现这一点,但不使用Jboss 我已经在redhat box JBoss 4.2上成功部署了3个应用程序 如果我的服务器名为fruit.mycompany.com,我可以通过以下方式访问这三个应用程序: http://fruit.mycompany.com:8080/quince http://fruit.mycompany.com:8080/pineapple http://fruit.mycompany.co

JBoss新手,我正在配置一些应用程序。我知道如何在ApacheWebServer中实现这一点,但不使用Jboss

我已经在redhat box JBoss 4.2上成功部署了3个应用程序

如果我的服务器名为fruit.mycompany.com,我可以通过以下方式访问这三个应用程序:

http://fruit.mycompany.com:8080/quince
http://fruit.mycompany.com:8080/pineapple
http://fruit.mycompany.com:8080/lime
接下来,我创建了三个子域,它们是服务器的别名

http://quince.mycompany.com
http://pineapple.mycompany.com
http://lime.mycompany.com
如何使每个子域指向其对应的应用程序

我想实际打开

在apache中,我将使用VirtualHost标记将每个子域指向正确的文档根。我如何使用JBoss或Tomcat


我可以通过重定向(Tomcat是否有类似mod_rewrite的功能)

您看过Tomcat Mod_jk吗?

Tomcat支持。你基本上必须:

1) 将tomcat的“侦听”端口更改为80,而不是8080

2) 修改tomcat的
server.xml
以列出您的服务器:

<Engine name="Catalina" defaultHost="quince">
    <Host name="quince"    appBase="quince_apps"/>
    <Host name="pineapple" appBase="pineapple_apps"/>
    <Host name="lime"      appBase="lime_apps"/>
</Engine>

3) 将每个应用程序移动到相应“\u apps”文件夹的“ROOT”文件夹

当我遇到类似的情况时,我选择使用Apache重定向;然而,我的Apache已经提供了静态页面(公共网站)。

我放弃了Tomcat

情况变得太复杂了。
我已经在端口80上运行了一个网站(在JBoss的一个单独实例上)。
我有这三个应用程序,quince、菠萝和莱姆,它们在8080端口上运行自己的JBoss实例

为了解决我的问题,我只在运行端口80的网站的索引页面上编写了一个javascript函数

我检查位置以查看正在调用哪个域,然后重定向到端口8080上的相应网站

脚本如下所示:

var whois=location+" ";
if (whois.indexOf("quince.mycompany.com") > -1)
{ 
    setTimeout('window.location.replace("http://quince.mycompany.com:8080/quince/");', 10);     
    exit;
}
if (whois.indexOf("lime.mycompany.com") > -1)
{ 
    setTimeout('window.location.replace("http://lime.mycompany.com:8080/lime/");', 10);     
    exit;
}
...
// otherwise redirect to the app running on port 80
setTimeout('window.location.replace("http://fruit.mycompany.com/otherapp/");', 10);  
这并不是我想要的,但至少我的用户现在有了一个快捷URL,他们不必记住端口号:
重定向到->

我真的不认为这是最好的方式,但就像你一样,我厌倦了绕圈跑。所以你的答案+1,非常有用。