WebLogic Server版本:12.1.2.0.0描述符

时间:2016-05-23 09:46:29

标签: weblogic12c

我有一个MVC spring应用程序。 我正在使用这个weblogic.xml描述符(我想获得会话跟踪的fid:weblogic在URL中添加的JSESSION参数)

<?xml version="1.0" encoding="UTF-8"?>
<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://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">

    <jsp-descriptor>
        <precompile>true</precompile>
    </jsp-descriptor>

    <!-- Added to resolve classpath problems when AOP is involved (hibernate, jcore, ...), 
         or compatibility problems between JARs provided in WLS as well as in the application.

    <container-descriptor>
       <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
-->
    <context-root>ecat</context-root>    
    <!-- context-root>iot_devices</context-root-->

     <!-- weblogic.xml entry --> 
    <session-descriptor> 
        <session-param> 
        <param-name>UrlRewritingEnabled</param-name> 
        <param-value>false</param-value> 
        </session-param> 
    </session-descriptor>


</weblogic-web-app>

但令人惊讶的是我有这个错误:

 [java] <23-May-2016 11:38:29 o'clock CEST> <Error> <J2EE> <BEA-160197> <Unable to load descriptor C:\Users\nunito\git\iot-devices\iot-devicesWeb\build\iot-devicesWeb/WEB-INF/weblogic.xml of module null. The error is weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
 [java]   problem: cvc-complex-type.2.4a: Expected elements 'timeout-secs@http://www.bea.com/ns/weblogic/weblogic-web-app invalidation-interval-secs@http://www.bea.com/ns/weblogic/weblogic-web-app debug-enabled@http://www.bea.com/ns/weblogic/weblogic-web-app id-length@http://www.bea.com/ns/weblogic/weblogic-web-app tracking-enabled@http://www.bea.com/ns/weblogic/weblogic-web-app cache-size@http://www.bea.com/ns/weblogic/weblogic-web-app max-in-memory-sessions@http://www.bea.com/ns/weblogic/weblogic-web-app cookies-enabled@http://www.bea.com/ns/weblogic/weblogic-web-app cookie-name@http://www.bea.com/ns/weblogic/weblogic-web-app cookie-path@http://www.bea.com/ns/weblogic/weblogic-web-app cookie-domain@http://www.bea.com/ns/weblogic/weblogic-web-app cookie-comment@http://www.bea.com/ns/weblogic/weblogic-web-app cookie-secure@http://www.bea.com/ns/weblogic/weblogic-web-app cookie-max-age-secs@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-store-type@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-store-cookie-name@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-store-dir@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-store-pool@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-data-source-jndi-name@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-session-flush-interval@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-session-flush-threshold@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-async-queue-timeout@http://www.bea.com/ns/weblogic/weblogic-web-app persistent-store-table@http://www.bea.com/ns/weblogic/weblogic-web-app jdbc-column-name-max-inactive-interval@http://www.bea.com/ns/weblogic/weblogic-web-app jdbc-connection-timeout-secs@http://www.bea.com/ns/weblogic/weblogic-web-app url-rewriting-enabled@http://www.bea.com/ns/weblogic/weblogic-web-app http-proxy-caching-of-cookies@http://www.bea.com/ns/weblogic/weblogic-web-app encode-session-id-in-query-params@http://www.bea.com/ns/weblogic/weblogic-web-app monitoring-attribute-name@http://www.bea.com/ns/weblogic/weblogic-web-app sharing-enabled@http://www.bea.com/ns/weblogic/weblogic-web-app' instead of 'session-param@http://www.bea.com/ns/weblogic/weblogic-web-app' here in element session-descriptor@http://www.bea.com/ns/weblogic/weblogic-web-app:<null>
 [java]     at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:234)
 [java]     at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:221)
 [java]     at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:146)
 [java]     at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)
 [java]     at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
 [java]     at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:409)
 [java]     at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:759)
 [java]     at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:768)
 [java]     at weblogic.servlet.internal.WebAppDescriptor.getWeblogicWebAppBean(WebAppDescriptor.java:170)
 [java]     at weblogic.servlet.jsp.jspc20.initDescriptors(jspc20.java:504)
 [java]     at weblogic.servlet.jsp.jspc20.runBody(jspc20.java:235)
 [java]     at weblogic.utils.compiler.Tool.run(Tool.java:158)
 [java]     at weblogic.utils.compiler.Tool.run(Tool.java:115)
 [java]     at weblogic.jspc.main(jspc.java:22)

1 个答案:

答案 0 :(得分:1)

您似乎正在使用WebLogic的旧标记结构。

  • WebLogic 10g,11g:UrlRewritingEnabled
  • WebLogic 12c:已启用网址重写

所以,你的部分应该是这样的:

<session-descriptor> 
    <session-param> 
    <param-name>url-rewriting-enabled</param-name> 
    <param-value>false</param-value> 
    </session-param> 
</session-descriptor>

此外,如果您打算使用url重写,请确保将cookie-secure设置为false,因为它们相互冲突。查看描述符结构here

希望它有所帮助!