在部署war文件时,weblogic 10.3.2中的weblogic.xml问题(struts2和hibernate 4.1)

时间:2013-09-24 16:42:32

标签: hibernate jpa weblogic classloader war

我使用struts2和hibernate创建了一个Web应用程序并创建了它的战争。

它在tomcat中工作正常但是因为它加载了jpa 1.0而出现了weblogic的问题所以我创建了weblogic.xml,如下所示

 <?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">

    <container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <prefer-application-packages>
            <package-name>antlr.*</package-name>
            <package-name>javax.persistence.*</package-name>
        </prefer-application-packages>
    </container-descriptor>

</weblogic-web-app>

这解决了这个问题,并且它与weblogic 10.3.3一起工作正常但是当我在weblogic 10.3.2中使用上面的weblogic.xml部署了同样的战争时,它给出了以下错误

  

验证问题发现问题:cvc-complex-type.2.4a:预期元素'default-mime-type @ http://xmlns.oracle.com/weblogic/weblogic-web-app client-cert-proxy-enabled @ http://xmlns.oracle.com/weblogic/weblogic-web-app relogin-enabled @ { {3}} allow-all-roles @ http://xmlns.oracle.com/weblogic/weblogic-web-app native-io-enabled @ http://xmlns.oracle.com/weblogic/weblogic-web-app minimum-native-file-size @ http://xmlns.oracle.com/weblogic/weblogic-web-app disable-implicit-servlet-mappings @ {{3 } {temp-dir @ http://xmlns.oracle.com/weblogic/weblogic-web-app optimistic-serialization @ http://xmlns.oracle.com/weblogic/weblogic-web-app retain-original-url @ http://xmlns.oracle.com/weblogic/weblogic-web-app show-archived-real-path-enabled @ http://xmlns.oracle.com/weblogic/weblogic-web-app require-admin-在元素容器描述符@ http://xmlns.oracle.com/weblogic/weblogic-web-app中,@ http://xmlns.oracle.com/weblogic/weblogic-web-app access-logging-disabled @ http://xmlns.oracle.com/weblogic/weblogic-web-app'而不是'prefer-application-packages @ http://xmlns.oracle.com/weblogic/weblogic-web-app'流量:

我发现10.3.2不支持weblogic.xml中使用的<prefer-application-packages>

所以我改变了weblogic.xml,如下所示

<weblogic-web-app
    xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
>

    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>

</weblogic-web-app>

但上面的weblogic.xml没有加载hibernate jpa2.0

任何人都可以在weblogic 10.3.2中为我提供运行hibernate的确切配置

我希望仅使用weblogic.xml完成​​此操作,而不是更改启动脚本或在weblogic模块文件夹中包含jar等任何其他方法

1 个答案:

答案 0 :(得分:0)

WebLogic 10.3.4是第一个支持JPA2.0的版本。您提到的Weblogic 10.3.0和10.3.2根本就不支持JPA2.0。如果您需要JPA2,则需要升级weblogic版本,否则使用JPA1.0。

某些版本的weblogic还要求weblogic-application.xml和weblogic.xml使用wls:tag的所有xml标记,以便您使用<wls:container-root>  和<wls:container-description> 这可能是验证错误的来源。