在部署weblogic服务器期间,Maven生成的ear文件失败 [英] Maven generated ear file fails during deploying weblogic server
问题描述
我有一个基于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屋!