首页 > 解决方案 > WebLogic 部署成功但出现错误

问题描述

我们正在将在 java 6 上运行的 WebLogic 10 升级到在 java 8 上运行的 WebLogic 12C。

最初我无法在 WebLogic 12C 上部署我的应用程序。我想,使用以下命令,我应该更新“WEB_APPLICATION”.ear 文件中的几个ejb-jar.xml文件以克服验证错误。

java weblogic.DDConverter -d 。“WEB_APPLICATION”.ear

准确地说,我已经更新了所有“消息驱动目标”标签以兼容新版本的 java 和 WebLogic。例如,我的ejb-jar.xml文件之一如下所示

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
    <display-name>CacheNotificationsMDBeanModule</display-name>
    <enterprise-beans>
    <message-driven>
      <description>Message driven bean for cache notifications</description>
      <display-name>CacheNotificationsMDB</display-name>
      <ejb-name>CacheNotificationsMDB</ejb-name>
      <ejb-class>com.cache.CacheNotificationsMDB</ejb-class>
      <transaction-type>Bean</transaction-type>   
      <activation-config>
        <activation-config-property>
          <activation-config-property-name>destinationType</activation-config-property-name>
          <activation-config-property-value>javax.jms.Topic</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>subscription-durability</activation-config-property-name>
          <activation-config-property-value>NonDurable</activation-config-property-value>
        </activation-config-property>
      </activation-config>    
    </message-driven>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
      <method>
        <ejb-name>CacheNotificationsMDB</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
</ejb-jar>

虽然我现在可以部署我的应用程序,但我收到以下消息和错误。

<**********> <******> <[ACTIVE] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> < 37954930-b27e-4d11-86e2-87dc139d7fda-00000012> <1535573307036> <[severity-value: 16] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > , EJBComponent: common-utils- mdbs.jar) 配置了未知的激活配置属性名称订阅耐久性>

<**********> <******> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <37954930- b27e-4d11-86e2-87dc139d7fda-00000007> <1535573336247> <[severity-value: 16] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > /kuy712/war/WEB-INF/ validation.xml,不符合 JSR 303 规范。>

<**********> <******> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <37954930- b27e-4d11-86e2-87dc139d7fda-00000007> <1535573336243> <[severity-value: 32] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] >

指定目录中的validation.xml文件如下所示

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN"
          "dtds/validator_1_1_3.dtd">
<form-validation>

  <!--  Default locale validation -->

  <!--  Some of the example validation in the default formset are diabled for now,
    but can be enabled and customized as needed
    for your default and other formsets formset. Note that http://www.regexlib.com/ may
    contain usefull regular expressions to apply to your customization
    with the "mask" validator! -->
  <formset>
    .......

并且validator_1_1_3.dtd文件存在于以下目录中。

/u01/app/oracle/config/domains/Domainlab/servers/********/tmp/_WL_user//kuy712/war/WEB-INF/dtds

我是 weblogic 的新手,不太确定如何解决这个问题。谁能帮帮我?

标签: javaweblogic12cbean-validationdtd

解决方案


您的 ejb-jar.xml 应该是:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
    <display-name>CacheNotificationsMDBeanModule</display-name>
    <enterprise-beans>
    <message-driven>
      <description>Message driven bean for cache notifications</description>
      <display-name>CacheNotificationsMDB</display-name>
      <ejb-name>CacheNotificationsMDB</ejb-name>
      <ejb-class>com.cache.CacheNotificationsMDB</ejb-class>
      <transaction-type>Bean</transaction-type>   
      <activation-config>
        <activation-config-property>
          <activation-config-property-name>destinationType</activation-config-property-name>
          <activation-config-property-value>javax.jms.Topic</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>subscriptionDurability</activation-config-property-name>
          <activation-config-property-value>NonDurable</activation-config-property-value>
        </activation-config-property>
      </activation-config>    
    </message-driven>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
      <method>
        <ejb-name>CacheNotificationsMDB</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
</ejb-jar>

允许的属性名称是:acknowledgeMode、messageSelector、destinationType、subscriptionDurability、destinationLookup、connectionFactoryLookup、subscriptionName 和 clientId。不允许订阅持久性。


推荐阅读