【问题标题】:How to run a deployment task on application deployment and application start如何在应用程序部署和应用程序启动时运行部署任务
【发布时间】:2015-04-09 05:06:50
【问题描述】:

我有一个使用 websphere 控制台部署的 war 文件。每次部署新版本的应用程序或启动应用程序时,我都想删除我的 linux 文件系统上 websphere 日志目录中的一些文件。

i.e. 
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/mySubFolder

我希望人们对正确的做法有什么看法。

我以前听说过 jacl 脚本,但不知道我是否应该朝那个方向发展。另外,如果我真的走 jacl 脚本路径,我可以为战争编写一个 jacl 脚本还是必须是一个耳朵?

谢谢

【问题讨论】:

    标签: java websphere war websphere-6.1


    【解决方案1】:

    您可能可以在 web.xml 中配置 ServletContextListener。

    <web-app ...>
       <listener>
        <listener-class>
                 com.example.MyServletContextListener 
            </listener-class>
       </listener>
    </web-app>
    

    MyServletContextListener.contextInitialized(...) 将在每次应用程序启动时被调用。当然,websphere 进程需要权限才能删除这些文件。

    【讨论】:

    • 谢谢。我会试试这个,让你知道我是怎么走的。删除文件系统上的日志文件是否是您通常使用 servlet 上下文过滤器执行的操作?
    • 我实在想不出在应用部署或启动时删除日志文件的理由。日志文件应该被轮换。日志轮换的配置选项可以满足我的所有需求。
    • 是的,我同意。但是我的 webapp 中有一个模块,它有自己的日志机制,它太复杂了,无法将日志重定向到 log4j rollingAppender。所以我只是把它们放在旁边的一个目录中,并希望每次重新启动应用程序时都将它们删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2023-03-27
    • 1970-01-01
    • 2012-12-10
    • 2023-01-20
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多