使用Maven

时间:2016-11-23 14:00:29

标签: java maven jax-rs weblogic

我们在WebLogic 12.1.3上运行了一个应用程序,我们想为它添加一些JAX-RS 2.0服务。我们使用Maven构建并部署到服务器(使用weblogic-maven-plugin)。

要在服务器上安装JAX-RS 2.0,我按照此处给出的步骤进行操作:

https://docs.oracle.com/middleware/1213/wls/RESTF/use-jersey20-ri.htm#RESTF297

一切似乎都很好。安装期间没有给出错误或警告,并且在WebLogic管理控制台中可以看到库。

但是现在当我做" mvn clean install"我得到了这个:

<Nov 23, 2016 2:39:00 PM CET> <Error> <J2EE> <BEA-160187> <weblogic.appc failed to compile the application. Recompile with the -verbose option for more details about the issue.>
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 26.655s
    [INFO] Finished at: Wed Nov 23 14:28:21 CET 2016
    [INFO] Final Memory: 65M/872M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal com.oracle.weblogic:weblogic-maven-plugin:12.1.3-0-0:appc (wls-appc) on project our-awesome-app: weblogic.utils.compiler.ToolFailureException: Unresolved WebApp library references defined in weblogic.xml, of module 'our-awesome-app.war' [Extension-Name: jax-rs, Specification-Version: 2, Implementation-Version: 2.5.1, exact-match: false]
    [ERROR] at weblogic.servlet.tools.WARModule.initWebAppLibraryManager(WARModule.java:449)
    [ERROR] at weblogic.servlet.tools.WARModule.processLibraries(WARModule.java:492)
    [ERROR] at weblogic.servlet.tools.WARModule.compile(WARModule.java:274)
    [ERROR] at weblogic.application.compiler.ToolsModuleWrapper.compile(ToolsModuleWrapper.java:107)
    (goes on and on...)

使用&#34; -verbose&#34;进行编译选项不会提供更多信息btw。

我已经用Google搜索了StackOverflow,但我似乎无法找到解决此问题的方法。

以下是(我相信)我们的pom.xml的相关部分:

    <plugin>
                    <!-- This is the configuration for the weblogic-maven-plugin -->
                    <groupId>com.oracle.weblogic</groupId>
                    <artifactId>weblogic-maven-plugin</artifactId>
                    <version>12.1.3-0-0</version>
                    <configuration>
                        <middlewareHome>${wls-admin-middleware-home}</middlewareHome>
                        <adminurl>${wls-admin-url}</adminurl>
                        <user>${wls-admin-user}</user>
                        <password>${wls-admin-password}</password>
                        <source>${project.build.directory}/${project.build.finalName}.${project.packaging}</source>
                        <targets>${wls-admin-targets}</targets>
                        <name>${project.build.finalName}</name>
                        <domainHome>${wls-admin-domain-home}</domainHome>
                        <securityModel>DDOnly</securityModel>
                    </configuration>
                    <executions>
                        <execution>
                            <id>wls-appc</id>
                            <phase>package</phase>
                            <goals>
                                <goal>appc</goal>
                            </goals>
                            <configuration />
                        </execution>
                        <execution>
                            <id>wls-wlst-start-server</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>start-server</goal>
                            </goals>
                            <configuration>
                            </configuration>
                        </execution>
                        <execution>
                            <id>wls-deploy</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                            <configuration>
                                <securityModel>DDOnly</securityModel>
                            </configuration>
                        </execution>
                        <execution>
                            <id>wls-start-app</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>start-app</goal>
                            </goals>
                            <configuration />
                        </execution>
                    </executions>
                </plugin>
...
<dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>

,这是在我们的weblogic.xml中:

<wls:library-ref>
      <wls:library-name>jax-rs</wls:library-name>
      <wls:specification-version>2.0</wls:specification-version>
      <wls:implementation-version>2.5.1</wls:implementation-version>
    </wls:library-ref>

如果任何对WebLogic有更多经验和知识的人能指出我的解决方案,我将非常感激。我之前主要与JBoss和Glassfish合作过,这给我带来了巨大的麻烦,因为我从来没有经历过与这些应用服务器类似的事情。

3 个答案:

答案 0 :(得分:0)

解决了它。 library-ref位于META-INF / weblogic-application.xml中,而不是WEB-INF / weblogic.xml中。

答案 1 :(得分:0)

这是因为尝试使用wls-appc预编译战争时缺少那些库引用。

这些共享库必须在编译时位于类路径中。

答案 2 :(得分:0)

您可能错过了JAX-RS 2.0库。按照此操作进行安装:进入您的服务器,单击安装新的应用程序/库,然后选择Oracle-&gt;的路径。 Middleware-&GT; wlserver-&GT;共&GT; deployable-libraries并选择JAX-RS 2.0.war库。它对我有用

相关问题