如何部署ApplicationLifecycleListener

时间:2016-01-14 22:19:57

标签: deployment weblogic jdeveloper

我创建了一个ApplicationListener在一个java项目中扩展ApplicationLifecycleListener,打包为一个jar文件,创建ear文件包含这个jar文件,尝试使用weblogic管理控制台中的“安装”按钮将其部署在weblogic服务器中(截图),我收到了错误。如果我将它打包为war文件,创建一个包含此war文件的ear文件,使用相同的方法我可以部署它而没有错误,但是它没有被调用。

我在互联网上搜索了一段时间,很多人都在谈论将这个监听器添加到weblogic-application.xml,我的项目中没有这个文件,我试图在weblogic服务器中找到它文件夹也无法找到它,我是weblogic的新手,不知道我应该如何使ApplicationLifecycleListener工作。

我应该在哪里找到这个weblogic-application.xml文件?或者我需要在哪里创建此文件?我是否必须创建J2EE或EJB项目?或者java项目可以做到这一点。

如果可能的话,请给我一些关于部署ApplicationLifecycleListener的详细步骤。 (我正在使用Jdeveloper) 首先我应该用什么项目来编写这个监听器类,在编码之后,如何注册它,最好的方法是什么以及如何部署它。

enter image description here

1 个答案:

答案 0 :(得分:0)

在一个典型的maven EAR项目中,你将它放在/myapp-ear/src/main/application/META-INF/中,看起来有点像这样:

<weblogic-application>
    <listener>
        <listener-class>com.myapp.SomethingSomethingServiceListener</listener-class>
        <listener-uri>myapp-lib.jar</listener-uri>
    </listener>
    <!-- add whatever other things you'd normally put into weblogic-application-->
</weblogic-application>

然后/myapp-lib/src/main/java会有你的听众代码。

我想将此代码放在/myapp-ear/pom.xml中,但这取决于您:

<build>
        <plugins>
            <plugin>
                <artifactId>maven-ear-plugin</artifactId>
                <configuration>
                    <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
                    <modules>
                        <jarModule>
                            <groupId>com.myapp</groupId>
                            <artifactId>myapp-lib</artifactId>
                            <bundleDir>/</bundleDir>
                        </jarModule>
                    </modules>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                        <manifestEntries><!-- weblogic really wants to know this for hot deploys -->
                            <Weblogic-Application-Version>${project.version}</Weblogic-Application-Version>
                        </manifestEntries>
                    </archive>
                    <fileNameMapping>no-version</fileNameMapping>
                </configuration>
            </plugin>
        </plugins>
    </build>