最好在没有WebSphere重新启动的情况下重新加载java类?

时间:2009-08-31 19:40:47

标签: java class dynamic java-ee

在WebSphere App Server上的J2EE WebApp中实现动态类重新加载功能的任何资源或最佳实践?

关键是我不想在某些类更新时关闭我的Web应用程序。

3 个答案:

答案 0 :(得分:1)

你可能想看看javarebel,这是热重装AFIK的最新技术

答案 1 :(得分:1)

有一个maven任务,而不是将所有项目文件复制到WebSphere installedapps目录。现在无需通过管理界面更新应用程序,只需运行maven install,所有文件都将复制到服务器。不要忘记将ibm-web-bnd.xmi和ibm-web-ext.xmi文件添加到WEB_INF以启用类重新加载

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <websphere.was.path>L:\WebSphere\AppServer</websphere.was.path>
    <websphere.portal.path>L:\WebSphere\PortalServer</websphere.portal.path>
    <deploy.path>L:\WebSphere\wp_profile\installedApps\LIPETSK-WPSCell\PA_Services_Search.ear</deploy.path>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

...

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>install</phase>
            <configuration>
                <tasks>
                    <property name="src" location="target/${project.artifactId}"/>
                    <property name="dst" location="${deploy.path}/${project.artifactId}.${project.packaging}"/>
                    <copy todir="${dst}" overwrite="true" verbose="true">
                        <fileset dir="${src}" casesensitive="yes">
                            <include name="**/*.*"/>
                            <exclude name="WEB-INF/lib/*.*"/>
                        </fileset>
                    </copy>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

答案 2 :(得分:0)

只需按照WebSphere Infocenter上的说明操作即可。该部分的标题是“热部署和动态重新加载”。这似乎正是您正在寻找的。