我创建了一个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) 首先我应该用什么项目来编写这个监听器类,在编码之后,如何注册它,最好的方法是什么以及如何部署它。
答案 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>