WebLogic_en - terasolunaorg/terasoluna-gfw GitHub Wiki

Precautions for using WebLogic 12c

Version information of check environment
terasoluan-gfw OS Java WebLogic RDBMS Browser Mail Server Message Queue
5.3.0.RELEASE CentOS 7.2 OracleJDK 8u111 WebLogic 12.2.1.2 Oracle 12.1.0.2.0 Firefox ESR 38 (38.5.0) Postfix 2.10.1 + Dovecot 2.1.10 ActiveMQ 5.13.4

Adding weblogic.xml

  • Following configuration is applied since the class (library) in WEB-INF directory of Web application is loaded in preference to the class (library) in lib directory of WebLogic. This is done because in WebLogic, when a class (library) stored in lib directory of WebLogic conflicts with the class (library) of Web application, an exception is thrown.

projectName-web/src/main/webapp/WEB-INF/weblogic.xml

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

The parameter -DANTLR_USE_DIRECT_CLASS_LOADING=true must be added to JAVA_OPTIONS of <DOMAIN_HOME>/bin/setDomainEnv.sh of WebLogic.

Note

If prefer-web-inf-classes is set to true, "antlr.jar" of Web application takes precedence and an exception java.lang.ClassCastException: antlr.CommonToken cannot be cast to antlr.Token is likely to be thrown at the time of deploying a Web application. This is because "antlr.jar" of WebLogic must be utilized while deploying Web application.

<DOMAIN_HOME>/bin/setDomainEnv.sh

Before change

JAVA_OPTIONS="${JAVA_OPTIONS}"
export JAVA_OPTIONS

After change

JAVA_OPTIONS="${JAVA_OPTIONS} -DANTLR_USE_DIRECT_CLASS_LOADING=true"
export JAVA_OPTIONS
  • Rewriting URL is disabled. Accordingly, session tracking is disabled when the session ID is encoded in URL and cookies are disabled in the browser. Default is true. (since jsessionId is not output in URL of browser.)

projectName-web/src/main/webapp/WEB-INF/weblogic.xml

<session-descriptor>
    <url-rewriting-enabled>false</url-rewriting-enabled>
</session-descriptor>

BASIC authentication

  • When Authorization header is marked in the request in default state of WebLogic, BASIC authentication function of WebLogic gets activated. Therefore, when BASIC authentication is required to be configured in Web application, BASIC authentication must be set to OFF by changing security settings of WebLogic from WLST console.

Starting WLST console

$ source <WL_HOME>/server/bin/setWLSEnv.sh
$ java weblogic.WLST

Run WLST command and set BASIC authentication to OFF

wls:/offline> connect('<User name>', '<Password>', 't3://<Administration host>:<Administration port>')
wls:/<Domain name>/serverConfig/> edit()
wls:/<Domain name>/edit/> startEdit()
wls:/<Domain name>/edit/ !> cd('/SecurityConfiguration/mydomain')
wls:/<Domain name>/edit/SecurityConfiguration/mydomain !> cmo.setEnforceValidBasicAuthCredentials(false)
wls:/<Domain name>/edit/SecurityConfiguration/mydomain !> save()
wls:/<Domain name>/edit/SecurityConfiguration/mydomain !> validate()
wls:/<Domain name>/edit/SecurityConfiguration/mydomain !> showChanges()
wls:/<Domain name>/edit/SecurityConfiguration/mydomain !> activate()
wls:/<Domain name>/edit/SecurityConfiguration/mydomain> exit()

About Java Required Files(JRF)

  • In TERASOLUNA Server Framework, validation is carried out by WebLogic wherein JRF is not enabled. (Oracle WebLogic Server is installed alone without installing Oracle Fusion Middleware Infrastructure or Oracle Jdeveloper.)

Note

When you load a JRF library, an exception java.lang.ClassNotFoundException: org.apache.xpath.XPath at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:357) is likely to be thrown at the time of deploying a Web application.

⚠️ **GitHub.com Fallback** ⚠️