アプリケーションの起動時にServletContextからサーバーURL(例:http://www.mywebapp.com/myapp )を取得しようとしています。これは、起動時にBeanメソッドを呼び出して(@Startupを使用して)取得します。サーブレットコンテキスト、
@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
これや他の手段でコンテキストパスを取得する方法を知っている人はいますか?
ps。SEAM 2.2.2、Jboss AS6 Final、Richfaces3.3.3を使用