我试图在应用程序启动时从 ServletContext 获取服务器 URL(例如http://www.mywebapp.com/myapp),我通过在启动时调用 bean 方法(使用 @Startup)并获取servlet 上下文,
@Startup
@Name("startupActions")
@Scope(ScopeType.APPLICATION)
public class StartupActionsBean implements StartupActions,
Serializable {
@Logger private Log log;
/**
*
*/
private static final long serialVersionUID = 1L;
@Create
@Override
public void create(){
ServletContext sc = org.jboss.seam.contexts.ServletLifecycle.getServletContext();
String context = sc.getContextPath();
String serverInfo = sc.getServerInfo();
log.debug("__________________START__________________");
log.debug("Context Path: "+context);
log.debug("Server Info: "+serverInfo);
}
// Cleanup methods
@Remove
@BypassInterceptors
@Override
public void cleanUp(){}
}
这项工作正常,但是 ServletContext 路径为空白,请参阅下面的控制台输出。
18:52:54,165 DEBUG [uk.co.app.actions.startup.StartupActionsBean] __________________START__________________
18:52:54,165 DEBUG [uk.co.app.actions.startup.StartupActionsBean] Context Path:
18:52:54,165 DEBUG [uk.co.app.actions.startup.StartupActionsBean] Server Info: JBoss Web/3.0.0-CR1
有谁知道如何通过这个或其他方式获得上下文路径?
附言。使用 SEAM 2.2.2、Jboss AS6 Final、Richfaces 3.3.3