在部署weblogic服务器期间,Maven生成的ear文件失败 [英] Maven generated ear file fails during deploying weblogic server

查看:204
本文介绍了在部署weblogic服务器期间,Maven生成的ear文件失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将JDeveloper 12.1.2.0.0与Oracle Weblogic Server结合使用。 Java版本是1.7.0_15。
我有一个基于Oracle ADF的项目。我必须把它弄得过去
首先我点击部署应用程序ear文件已经创建并在服务器上运行良好。
在我的应用程序中有Model和ViewController项目。
为了mavenize,我刚刚为每个项目创建了Maven POM项目,最后为应用程序创建了一个Application POM。
最终产品应该是使用管理控制台在远程服务器上部署的文件,所以我修改了一些应用程序POM(删除了Model和ViewController模块,然后我可以将包装从pom更改为耳朵)。
当我maven安装所有的build已经成功结束。
在将ear文件部署到Weblogic Server之前,我得到了

  java.lang.ClassNotFoundException:org.apache.myfaces。 trinidad.webapp.ResourceServlet 

我将这些行添加到ViewController pom.xml中:

 <依赖关系> 
< groupId> org.apache.myfaces.core< / groupId>
< artifactId> myfaces-api< / artifactId>
< version> 2.2.4< / version>
< / dependency>
<依赖关系>
< groupId> org.apache.myfaces.core< / groupId>
< artifactId> myfaces-impl< / artifactId>
< version> 2.2.4< / version>
< / dependency>

再次部署我收到这个错误,不知道该怎么办:

 导致:java.lang.NullPointerException 
在weblogic.servlet.internal.WebAnnotationProcessor.processMultipartConfigAnnotation(WebAnnotationProcessor.java:286)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotationForClasses(AnnotationProcessingManager.java:169)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(AnnotationProcessingManager.java:114)
at weblogic.servlet.internal .AnnotationProcessingManager.processAnnotationsOutsideWebFragment(AnnotationProcessingManager.java:141)
在weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(AnnotationProcessingManager.java:102)
在weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(AnnotationProcessingManager.java :79)
at weblogic.servlet.tools.WARModule.processAnnotations(WARModule.java:491)
a t weblogic.servlet.tools.WARModule.processAnnotations(WARModule.java:578)
在weblogic.servlet.tools.WARModule.merge(WARModule.java:526)
在weblogic.application.compiler.ToolsModuleWrapper .merge(ToolsModuleWrapper.java:96)
在weblogic.application.utils.CustomModuleManager.merge(CustomModuleManager.java:78)
在weblogic.application.compiler.flow.MergeModuleFlow.compile(MergeModuleFlow.java :38)
在weblogic.application.compiler.FlowDriver $ FlowStateChange.next(FlowDriver.java:70)
在weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
在weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
在weblogic.application.compiler.BaseMerger.merge(BaseMerger.java:20)
在weblogic.application.compiler。 flow.AppMergerFlow.mergeInput(AppMergerFlow.java:75)
在weblogic.application.compiler.flow.AppMergerFlow.compile(AppMergerFlow.java:40)
在weblogic.application.compiler.FlowDriver $ FlowStateChange。下一个(F lowDriver.java:70)
在weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
在weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
... 75更多

顺便说一句,我比较了部署(右键点击应用程序 - >部署)并由maven耳文件创建。我发现一些差异:
Maven生成的ear文件包含Model-1.0-SNAPSHOT.jar在WEB-INF\lib\ altough部署已经在WEB-INF \classes中得到了Modell项目的类文件。 >

无论如何,当我在第一次maven安装之后更新pom.xml中的依赖部分没有什么发生(它添加了新的依赖项,但是如果我在maven安装之后删除其中的一些,它包含它们。 ?maven clean package?)。



任何帮助将被高度赞赏。

解决方案

为了解决这个问题,我在web层pom.xml中使用了以下内容:

 < dependency> 
< groupId> com.sun.faces< / groupId>
< artifactId> jsf-api< / artifactId>
< version> 2.2.13< / version>
< / dependency>
<依赖关系>
< groupId> com.sun.faces< / groupId>
< artifactId> jsf-impl< / artifactId>
< version> 2.2.13< / version>
< / dependency>
<依赖关系>
< groupId> javax.el< / groupId>
< artifactId> el-api< / artifactId>
< version> 2.2< / version>
< / dependency>
<依赖关系>
< groupId> org.glassfish.web< / groupId>
< artifactId> el-impl< / artifactId>
< version> 2.2< / version>
< / dependency>
<依赖关系>
< groupId> javax.el< / groupId>
< artifactId> javax.el-api< / artifactId>
< version> 2.2.1< / version>
< / dependency>
<依赖关系>
< groupId> javax.faces< / groupId>
< artifactId> javax.faces-api< / artifactId>
< version> 2.2< / version>
< / dependency>

和以下weblogic-application.xml:

 <?xml version =1.0encoding =UTF-8?> 
< weblogic-application
xmlns:wls =http://xmlns.oracle.com/weblogic/weblogic-application
xmlns:xsi =http://www.w3 .org / 2001 / XMLSchema-instance
xsi:schemaLocation =http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5 .xsd
http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.4/weblogic-application.xsd\">

< prefer-application-packages>
< package-name> javax.el。*< / package-name>
< package-name> javax.faces。*< / package-name>
< package-name> com.sun.el。*< / package-name>
< package-name> com.sun.faces。*< / package-name>
< package-name> com.bea.faces。*< / package-name>
< / prefer-application-packages>

< prefer-application-resources>
< resource-name> META-INF / services / javax.servlet.ServletContainerInitializer< / resource-name>
< resource-name> META-INF / services / com.sun.faces。*< / resource-name>
< / prefer-application-resources>

< / weblogic-application>

这篇文章中有更多的细节:将JSF 2.2部署到WebLogic 12.1.3


I use JDeveloper 12.1.2.0.0 with Oracle Weblogic Server. Java version is 1.7.0_15. I have got a project based on Oracle ADF. I have to mavenize it. First of all I click on deploy the application ear file has created and working well on the server. In my application there is Model and ViewController projects. To mavenize I've just created Maven POM for project to every projects and finally an Application POM to the application. The end product should be ear file to deploy on remote server with administration console so I modified a little the application POM (removed the Model and ViewController modules and then I could change the packaging from pom to ear). When I maven install all of them build has ended successfully. During deploying ear file to the Weblogic Server I got

java.lang.ClassNotFoundException: org.apache.myfaces.trinidad.webapp.ResourceServlet

I added these lines to my ViewController pom.xml:

<dependency>
    <groupId>org.apache.myfaces.core</groupId>
    <artifactId>myfaces-api</artifactId>
    <version>2.2.4</version>
</dependency>
<dependency>
    <groupId>org.apache.myfaces.core</groupId>
    <artifactId>myfaces-impl</artifactId>
    <version>2.2.4</version>
</dependency>

Deploying again I got this error and don't have idea what to do:

Caused by: java.lang.NullPointerException
at weblogic.servlet.internal.WebAnnotationProcessor.processMultipartConfigAnnotation(WebAnnotationProcessor.java:286)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotationForClasses(AnnotationProcessingManager.java:169)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(AnnotationProcessingManager.java:114)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotationsOutsideWebFragment(AnnotationProcessingManager.java:141)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(AnnotationProcessingManager.java:102)
at weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(AnnotationProcessingManager.java:79)
at weblogic.servlet.tools.WARModule.processAnnotations(WARModule.java:491)
at weblogic.servlet.tools.WARModule.processAnnotations(WARModule.java:578)
at weblogic.servlet.tools.WARModule.merge(WARModule.java:526)
at weblogic.application.compiler.ToolsModuleWrapper.merge(ToolsModuleWrapper.java:96)
at weblogic.application.utils.CustomModuleManager.merge(CustomModuleManager.java:78)
at weblogic.application.compiler.flow.MergeModuleFlow.compile(MergeModuleFlow.java:38)
at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:70)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
at weblogic.application.compiler.BaseMerger.merge(BaseMerger.java:20)
at weblogic.application.compiler.flow.AppMergerFlow.mergeInput(AppMergerFlow.java:75)
at weblogic.application.compiler.flow.AppMergerFlow.compile(AppMergerFlow.java:40)
at weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:70)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)
... 75 more

By the way I compared the deployed (right click on application -> deploy) and created by maven ear file. I found some differences: Maven generated ear file contains Model-1.0-SNAPSHOT.jar in WEB-INF\lib\ altough deployed has got the Modell project's class files in WEB-INF\classes.

Anyway when I update the dependecies section in pom.xml after first maven install nothing happens (it adds the new dependecies, but if I remove some of them after maven install it contains them. ?maven clean package?).

Any help would be highly appreciated.

解决方案

To get around this issue, I used the following in my web layer pom.xml:

<dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.13</version>
    </dependency>
    <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.13</version>
    </dependency>
    <dependency>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
            <version>2.2</version>
    </dependency>
    <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>el-impl</artifactId>
            <version>2.2</version>
    </dependency>
    <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>2.2.1</version>
    </dependency>
    <dependency>
            <groupId>javax.faces</groupId>
            <artifactId>javax.faces-api</artifactId>
            <version>2.2</version>
    </dependency>

and the following weblogic-application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd
        http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.4/weblogic-application.xsd">

    <prefer-application-packages>
            <package-name>javax.el.*</package-name>
            <package-name>javax.faces.*</package-name>
            <package-name>com.sun.el.*</package-name>
            <package-name>com.sun.faces.*</package-name>
            <package-name>com.bea.faces.*</package-name>
        </prefer-application-packages>

        <prefer-application-resources>
            <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
            <resource-name>META-INF/services/com.sun.faces.*</resource-name>
        </prefer-application-resources>

</weblogic-application>

There are more details in this post: Deploying a JSF 2.2 to WebLogic 12.1.3

这篇关于在部署weblogic服务器期间,Maven生成的ear文件失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆