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

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

我该如何以编程方式实现它。

提前致谢,

伊利亚西多罗维奇

这只是将您的子域映射到可由appserver访问的URL的过程,并使用REST之类的东西将URL映射到请求参数。

在您的示例中,您可能需要像Apache Web服务器这样的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_jk , mod_proxy或mod_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(); } }