使用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_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();
}
}
标签:jboss,registration,subdomain,java 来源: https://codeday.me/bug/20191101/1984331.html