使用JBOSS和Java以编程方式创建子域

现在,我正在使用JSF,SEAM和Primefaces在JBOSS 7.1上开发应用程序.该应用程序正在提供用户注册.我需要的是,当用户注册一个昵称帐户(例如“ andrew”)时,其个人资料将作为andrew.mysite.com公开访问.

我如何以编程方式实现这一目标.

提前致谢,

伊利亚·西多罗维奇(Ilya Sidorovich)

解决方法:

这只是将您的子域映射到可以由应用服务器访问的URL的过程,并使用诸如REST之类的东西将URL映射为请求参数.

在您的示例中,您可能需要一个Web服务器(如Apache Web服务器)来处理可以进行一些URL重写的传入请求.像这样

user.mysite.com --> www.mysite.com/user

在Apache中,可以通过创建虚拟主机并使用RewriteCond和RewriteRule来实现.这是一个例子

RewriteCond %{HTTP_HOST} ^([^.]+)\.mysite\.com$
RewriteRule ^/(.*)$          http://www.mysite.com/%1/$1 [L,R]

然后,您可以将请求从Web服务器转发到应用程序服务器.如果使用Apache,则可以使用mod_jkmod_proxymod_cluster完成.

一旦有了它,就可以创建一个RESTFul服务(jboss支持REST),该服务可以将URL映射到您的应用程序代码.这是一个例子

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/")
public class UserService {

    @GET
    @Path("/{param}")
    public Response printMessage(@PathParam("param") String user) {

        String result = "User : " + user;
        return Response.status(200).entity(result).build();

    }

}
上一篇:Linux系统:第十章:服务器环境搭建


下一篇:sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied