jan*_*jan 10 java tomcat virtual-hosts
Tomcat提供了"虚拟主机"支持的构建:可以将引擎/ Web应用程序配置为负责域列表.必须使用特殊的xml指令将这些域放入server.xml/context.xml文件中.
=>是否有可能以编程方式更改Tomcat配置(通常),尤其是Web应用程序/引擎的"虚拟主机"?
例如,如果新用户注册,我必须将他的域添加到"已接受的虚拟主机/域"列表中.我目前想到的唯一方法是通过脚本更改xml文件,然后重新启动Tomcat.
有没有办法添加它们通过一些Java-Methods以编程方式添加运行时?
非常感谢你!一月
Tomcat提供API来创建新的虚拟主机.要访问此所需的包装器对象,您需要实现ContainerServlet.你可以像这样创建虚拟主机,
Context context = (Context) wrapper.getParent();
Host currentHost = (Host) context.getParent();
Engine engine = (Engine) currentHost.getParent();
StandardHost host = new StandardHost();
host.setAppBase(appBase);
host.setName(domainName);
engine.addChild(host);
Run Code Online (Sandbox Code Playgroud)
您需要确保appBase目录存在,并且您必须找到将新主机持久保存到server.xml的方法,或者在重新启动时丢失主机.
但是,这种方法很少有效.如果您的用户运行他们自己的应用程序,您真的想要运行单独的Tomcat实例,以便您可以更好地沙盒化应用程序.例如,一个内存不足的应用程序不会杀死所有其他应用程序.
如果您提供应用程序,则只能使用一个主机(defaultHost).您可以从Host标头获取域名,并在您的代码中执行任何特定于域的内容.
| 归档时间: |
|
| 查看次数: |
3687 次 |
| 最近记录: |