禁用 webLogic 服务器的本机 JSF 实现并使用 myfaces 实现

Disable native JSF implementation of webLogic server and use myfaces implementation

我读到 Oracle WebLogic Server 有一个 JSF 实现,它默认使用它。这个 article 描述了禁用此默认实现并允许使用不同实现的过程(我想在我的案例中使用 myfaces 实现),但我无法弄清楚 weblogic.xml 在我的 \workspace.metadata 会变成这样。

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/920/weblogic-web-app.xsd">
    <wls:jsp-descriptor>
        <wls:keepgenerated>true</wls:keepgenerated>
        <wls:working-dir>D:\Ejada\Eclipse\Mars\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\base_domain\work\OnlineShop</wls:working-dir>
        <wls:debug>true</wls:debug>
    </wls:jsp-descriptor>
    <wls:context-root>OnlineShop</wls:context-root>
    <wls:weblogic-version>9.2</wls:weblogic-version>
    <prefer-application-packages> 
   <package-name>javax.faces.*</package-name> 
   <package-name>com.sun.faces.*</package-name> 
   <package-name>com.bea.faces.*</package-name> 
   </prefer-application-packages> 

   <prefer-application-resources> 
   <resource-name>javax.faces.*</resource-name> 
   <resource-name>com.sun.faces.*</resource-name> 
   <resource-name>com.bea.faces.*</resource-name> 

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

目前在启动我的服务器时它无法重新启动并出现错误:

<Failure occurred in the execution of deployment request with ID "94264473636217" for task "1" on [partition-name: DOMAIN]. Error is: "weblogic.application.ModuleException: [HTTP:101064][WebAppModule(_auto_generated_ear_:OnlineShop)] Error parsing descriptor in Web appplication "D:\Ejada\Eclipse\Mars\Workspace\OnlineShop\WebContent"
weblogic.application.ModuleException: VALIDATION PROBLEMS WERE FOUND
  <10:7> problem: cvc-complex-type.2.4a: Expected elements 'description@http://xmlns.oracle.com/weblogic/weblogic-web-app weblogic-version@http://xmlns.oracle.com/weblogic/weblogic-web-app security-role-assignment@http://xmlns.oracle.com/weblogic/weblogic-web-app run-as-role-assignment@http://xmlns.oracle.com/weblogic/weblogic-web-app resource-description@http://xmlns.oracle.com/weblogic/weblogic-web-app resource-env-description@http://xmlns.oracle.com/weblogic/weblogic-web-app ejb-reference-description@http://xmlns.oracle.com/weblogic/weblogic-web-app service-reference-description@http://xmlns.oracle.com/weblogic/weblogic-web-app message-destination-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app session-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app jsp-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app auth-filter@http://xmlns.oracle.com/weblogic/weblogic-web-app container-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app async-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app charset-params@http://xmlns.oracle.com/weblogic/weblogic-web-app virtual-directory-mapping@http://xmlns.oracle.com/weblogic/weblogic-web-app url-match-map@http://xmlns.oracle.com/weblogic/weblogic-web-app security-permission@http://xmlns.oracle.com/weblogic/weblogic-web-app context-root@http://xmlns.oracle.com/weblogic/weblogic-web-app wl-dispatch-policy@http://xmlns.oracle.com/weblogic/weblogic-web-app servlet-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app work-manager@http://xmlns.oracle.com/weblogic/weblogic-web-app managed-executor-service@http://xmlns.oracle.com/weblogic/weblogic-web-app managed-scheduled-executor-service@http://xmlns.oracle.com/weblogic/weblogic-web-app managed-thread-factory@http://xmlns.oracle.com/weblogic/weblogic-web-app component-factory-class-name@http://xmlns.oracle.com/weblogic/weblogic-web-app logging@http://xmlns.oracle.com/weblogic/weblogic-web-app library-ref@http://xmlns.oracle.com/weblogic/weblogic-web-app jaspic-provider@http://xmlns.oracle.com/weblogic/weblogic-web-app fast-swap@http://xmlns.oracle.com/weblogic/weblogic-web-app coherence-cluster-ref@http://xmlns.oracle.com/weblogic/weblogic-web-app osgi-framework-reference@http://xmlns.oracle.com/weblogic/weblogic-web-app ready-registration@http://xmlns.oracle.com/weblogic/weblogic-web-app cdi-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app' instead of 'prefer-application-packages@http://xmlns.oracle.com/weblogic/weblogic-web-app' here in element weblogic-web-app@http://xmlns.oracle.com/weblogic/weblogic-web-app
  <16:6> problem: cvc-complex-type.2.4a: Expected elements 'description@http://xmlns.oracle.com/weblogic/weblogic-web-app weblogic-version@http://xmlns.oracle.com/weblogic/weblogic-web-app security-role-assignment@http://xmlns.oracle.com/weblogic/weblogic-web-app run-as-role-assignment@http://xmlns.oracle.com/weblogic/weblogic-web-app resource-description@http://xmlns.oracle.com/weblogic/weblogic-web-app resource-env-description@http://xmlns.oracle.com/weblogic/weblogic-web-app ejb-reference-description@http://xmlns.oracle.com/weblogic/weblogic-web-app service-reference-description@http://xmlns.oracle.com/weblogic/weblogic-web-app message-destination-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app session-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app jsp-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app auth-filter@http://xmlns.oracle.com/weblogic/weblogic-web-app container-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app async-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app charset-params@http://xmlns.oracle.com/weblogic/weblogic-web-app virtual-directory-mapping@http://xmlns.oracle.com/weblogic/weblogic-web-app url-match-map@http://xmlns.oracle.com/weblogic/weblogic-web-app security-permission@http://xmlns.oracle.com/weblogic/weblogic-web-app context-root@http://xmlns.oracle.com/weblogic/weblogic-web-app wl-dispatch-policy@http://xmlns.oracle.com/weblogic/weblogic-web-app servlet-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app work-manager@http://xmlns.oracle.com/weblogic/weblogic-web-app managed-executor-service@http://xmlns.oracle.com/weblogic/weblogic-web-app managed-scheduled-executor-service@http://xmlns.oracle.com/weblogic/weblogic-web-app managed-thread-factory@http://xmlns.oracle.com/weblogic/weblogic-web-app component-factory-class-name@http://xmlns.oracle.com/weblogic/weblogic-web-app logging@http://xmlns.oracle.com/weblogic/weblogic-web-app library-ref@http://xmlns.oracle.com/weblogic/weblogic-web-app jaspic-provider@http://xmlns.oracle.com/weblogic/weblogic-web-app fast-swap@http://xmlns.oracle.com/weblogic/weblogic-web-app coherence-cluster-ref@http://xmlns.oracle.com/weblogic/weblogic-web-app osgi-framework-reference@http://xmlns.oracle.com/weblogic/weblogic-web-app ready-registration@http://xmlns.oracle.com/weblogic/weblogic-web-app cdi-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app' instead of 'prefer-application-resources@http://xmlns.oracle.com/weblogic/weblogic-web-app' here in element weblogic-web-app@http://xmlns.oracle.com/weblogic/weblogic-web-app

我的 weblogic.xml 文件应该包含什么?

它应该包含以下内容:

<container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <prefer-application-packages>
            <package-name>javax.faces.*</package-name>
            <package-name>org.jboss.logging.*</package-name>
        </prefer-application-packages>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
    </container-descriptor>

放在WEB-INF文件夹中。