【问题标题】:How to deploy ApplicationLifecycleListener如何部署 ApplicationLifecycleListener
【发布时间】:2016-01-14 22:19:57
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: deployment weblogic jdeveloper


    【解决方案1】:

    在一个典型的 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>
    

    【讨论】:

    • 谢谢,这很有帮助。从你所说的,所以 weblogic-application.xml 文件应该在我创建监听器的项目中。我在 jdeveloper 中使用了一个 java 项目,我假设如果我在这个项目中的正确位置创建这个 xml 文件它应该可以工作,我会尝试这些。
    • 我尝试在 JDeveloper 中做同样的事情,但似乎 EAR 不需要在那里是一个项目,而且我没有地方可以创建那个 xml 文件。我安装了 maven 并创建了一个包含我的侦听器和所需 jar 文件的项目。并创建了另一个项目用它来生成EAR文件,我在你告诉我的/myapp-ear/src/main/application/META-INF/的路径中创建了weblogic-application.xml,并将我的第一个项目的jar文件作为依赖项导入。然后用 mvn clean package 构建这个 EAR 项目,得到一个 EAR 文件,但是当尝试安装它时,它给了我错误。你能帮忙吗?
    猜你喜欢
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2017-10-17
    • 2022-07-09
    相关资源
    最近更新 更多