Weblogic
CONFIGURACIÓN WEBLOGIC 12C
A partir de ahora se van a sustituir los despliegues que se realizaban en AST en servidores OC4J por servidores Weblogic 12c, utilizando también Java 7 y Ant 1.8
Java 1.7
Descargar
Añadir a las variables de entorno
JAVA\_HOME: C:\\Archivos de programa\\Java\\jdk1.7.0\_51
PATH: %JAVA\_HOME%\\jre\\bin
- Verificamos la instalación desde una consola ms-dos :
java –version
Ant 1.8
Descargar de http://archive.apache.org/dist/ant/binaries/ o utilizar el zip de
H:\ecinform\Software\utilidades
Herramienta que utilizaremos para compilar
Descomprimir el zip en una carpeta
Añadir a las variables de entorno
ANT\_HOME: C:\\Programas\\apache-ant-1.8.4
PATH: %ANT\_HOME% \\bin
- Verificamos la instalación desde una consola ms-dos: ant –version
Weblogic 12c Instalación
- En
H:\ecinform\Software\Servidores
encontraremos el zip del servidor. - Extraer zip en: C:\Servidores\wls12120
- Añadir a las variables de entorno (aunque no es necesario porque el script de arranque ya se encarga)
MW\_HOME=C:\\...\\wls12120
- Ejecutar configure.cmd desde consola ms-dos
- Configurar dominio respondemos que si Y
- username / pass:
- admin / admin12345
- El password debe tener mínimo 8 posiciones (nº y letras)
- El servidor se arrancará automáticamente esta primera vez
C:\Servidores\wls12120\user_projects\domains\mydomain\bin
scripts de arranque y parada- Consola de administración: http://localhost:7001/console/login/LoginForm.jsp
Definir una conexión a base de datos
Antes de desplegar un
ear
desde la consola de administración, debemos definir la conexión a bdDesde la consola de administración: http://localhost:7001/console/login/LoginForm.jsp
Servicios – Origenes de datos Nombre: poolxxx
Nombre de jndi: jdbc/poolxxx Nombre bd: orad
Nombre clase del controlador:
oracle.jdbc.OracleDriver
Host: mallen.educa.aragon.es Puerto: 1526 Username: xxx Password: xxx
IMPORTANTE: se mostrará una última pantalla en la que aparece un check para que relacionemos el origen de datos con el dominio del weblogic que queremos relacionar. Marcamos el nuestro (único que hay)
Desplegar ear
Desde la consola de administraciónhttp://localhost:7001/console/login/LoginForm.jsp
Despliegues – Instalar – Seleccionar el ear
IMPORTANTE: Seleccionar: Instalar despliegue como aplicación
MIGRAR A WEBLOGIC 12C DESDE OC4J
Nuevos ficheros
src / conf
- weblogic-application.xml (ver punto 3.1)
- web / WEB-INF
- web.xml (modificaciones ver punto 3.3)
- weblogic.xml (ver punto 3.2)
- web/WEB-INF/ classes struts.xml (modificaciones ver punto 3.4)
Eliminar ficheros
src/conf
orion-application.xml
web / WEB-INF
orion-web.xml
Carpeta weblogic.lib
- Añadimos la carpeta weblogic.lib y eliminamos la oc4j.lib
(El log4j.jar lo añado a lib y la saco de la liberías de weblogic.lib )
Un apunte de cara a un posible paso a AST:
- Es posible que ellos ya hayan añadido al servidor el log4j.jar, por lo que al final igual hay que quitarlo.
ojdbc14.jar
javax.mail_1.1.0.0_1-4-4.jar
javax.servlet_2.1.0.0_3-0.jar
FICHEROS
- ### weblogic-application.xml
Situado en src/conf
<?xml version=“1.0” encoding=“UTF-8”?>
<weblogic-application xmlns=“http://xmlns.oracle.com/weblogic/weblogic-application"
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=“http://xmlns.oracle.com/weblogic/weblogic-application
http://xmlns.oracle.com/weblogic/weblogic-application/1.5/weblogic-application.xsd">
<application-param>
<param-name>webapp.encoding.default</param-name>
<param-value>ISO-8859-1</param-value>
</application-param>
</weblogic-application>
weblogic.xml
Situado en web / WEB-INF
<?xml version=“1.0” encoding=“UTF-8”?>
<weblogic-web-app xmlns=“http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=“http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.5/weblogic-web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
<optimistic-serialization>true</optimistic-serialization>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
</weblogic-web-app>
web.xml
Situado en web / WEB-INF
En la etiqueta <env-entry> será necesario definir antes el type que el value para que no de problemas en weblogic.
Struts.xml
Situado en web / WEB-INF / classes. Añadir este código para que struts2 funcione en weblogic 12c
<constant name=“struts.convention.action.mapAllMatches”
value=“true” />
<constant name=“struts.convention.action.includeJars”
value=“.*?/_wl_cls_gen.*?jar(!/)?” />
<constant name=“struts.convention.action.fileProtocols”
value=“jar,zip” />
build.xml
-Definición variables: añado weblogic.lib y quito oc4j.lib
-conf.dir : añado weblogic-application (grt\src\conf)
-javabin : cambio jdk
-prepare: quito orion y datasources y añado weblogic y en el war lo mismo
-ear : añado weblogic
-Añado el log4j.jar en 2 sitios como todos los jar de lib
<project name=“grt” default=“ear” basedir=“.”>
<description>Fichero de configuración de la aplicacion de Gestion de Rutas de Transporte.</description>
<!– =================================================== –>
<!– Definicion de Variables –>
<!– =================================================== –>
<!– Nombre de la aplicacion –>
<property name=“nombreApl” value=“grt”/>
<!– Directorio con los ficheros web –>
<property name=“webroot.dir” value=”\${basedir}/web”/>
<!– Directorio Web-Inf –>
<property name=“webinf.dir” value=”\${webroot.dir}/WEB-INF”/>
<!– Directorio build –>
<property name=“build.dir” value=”\${basedir}/build”/>
<!– Directorio dist –>
<property name=“dist.dir” value=”\${basedir}/dist”/>
<!– Directorio con los ficheros de configuración –>
<property name=“conf.dir” value=”\${basedir}/src/conf”/>
<!– Directorio con los ficheros del war descomprimidos –>
<property name=“war.dir” value=”\${build.dir}/web”/>
<!– Directorio con las classes –>
<property name=“classes.dir” value=”\${war.dir}/WEB-INF/classes”/>
<!– Entorno que se quiere generar –>
<property name=“entorno” value=“loc”/>
<!– Directorio con las librerias propias de AST –>
<property name=“weblogic.lib” value=”\${basedir}/weblogic.lib”/>
<!– Ruta del ejecutable javac para compilar el proyecto –>
<!–<property name=“javabin” value=“C:\Archivos de programa\Java\jdk1.5.0_21\bin\javac”/>–>
<property name=“javabin” value=“C:\Archivos de programa\Java\jdk1.7.0_51\bin\javac”/>
<!– Si el valor es true, compila a traves del fichero especificado en la variable “javabin”–>
<property name=“fork” value=“true”/>
<!– =================================================== –>
<!– Operacion de borrado –>
<!– =================================================== –>
<target name=“clean”>
<!– Se borra el directorio de entorno del dist –>
<delete dir=”\${dist.dir}/\${entorno}” />
<!– Se borra el directorio war del build –>
<delete dir=”\${build.dir}” />
<!– Se crea el directorio de entorno del build –>
<mkdir dir=”\${dist.dir}/\${entorno}” />
<!– Se crea el directorio classes del build –>
<mkdir dir=”\${classes.dir}” />
</target>
<!– =================================================== –>
<!– Compilar el proyecto –>
<!– =================================================== –>
<target name=“javac”>
<javac srcdir=”\${basedir}/src/java” destdir=”\${classes.dir}/” executable=”\${javabin}” fork=”\${fork}” debug=“true” optimize=“false” deprecation=“false” includeantruntime=“false”>
<classpath>
<pathelement location=”\${classes.dir}/“/>
<fileset dir=”\${basedir}/lib/”>
<include name=”**/antlr-2.7.2.jar”/>
<include name=”**/commons-beanutils-1.8.0.jar”/>
<include name=”**/commons-chain-1.2.jar”/>
<include name=”**/commons-collections-3.2.jar”/>
<include name=”**/commons-digester-2.0.jar”/>
<include name=”**/commons-fileupload-1.2.1.jar”/>
<include name=”**/commons-io-1.3.2.jar”/>
<include name=”**/commons-logging-1.0.4.jar”/>
<include name=”**/commons-validator-1.3.1.jar”/>
<include name=”**/freemarker-2.3.16.jar”/>
<include name=”**/iText-2.1.7.jar”/>
<include name=”**/jasperreports-4.1.1.jar”/>
<include name=”**/javassist-3.7.ga.jar”/>
<include name=”**/jxl-2.6.10.jar”/>
<include name=”**/ognl-3.0.jar”/>
<include name=”**/oro-2.0.8.jar”/>
<include name=”**/poi-3.7-20101029.jar”/>
<include name=”**/struts2-convention-plugin-2.2.1.1.jar”/>
<include name=”**/struts2-core-2.2.1.1.jar”/>
<include name=”**/struts2-spring-plugin-2.1.8.1.jar”/>
<include name=”**/struts2-tiles-plugin-2.2.1.1.jar”/>
<include name=”**/xwork-core-2.2.1.1.jar”/>
<include name=”**/aopalliance-1.0.jar”/>
<include name=”**/org.springframework.aop-3.1.0.M1.jar”/>
<include name=”**/org.springframework.asm-3.1.0.M1.jar”/>
<include name=”**/org.springframework.beans-3.1.0.M1.jar”/>
<include name=”**/org.springframework.context-3.1.0.M1.jar”/>
<include name=”**/org.springframework.context.support-3.1.0.M1.jar”/>
<include name=”**/org.springframework.core-3.1.0.M1.jar”/>
<include name=”**/org.springframework.expression-3.1.0.M1.jar”/>
<include name=”**/org.springframework.jdbc-3.1.0.M1.jar”/>
<include name=”**/org.springframework.transaction-3.1.0.M1.jar”/>
<include name=”**/org.springframework.web-3.1.0.M1.jar”/>
<include name=”**/org.springframework.web.servlet-3.1.0.M1.jar”/>
<include name=”**/org.springframework.web.struts-3.1.0.M1.jar”/>
<include name=”**/quartz-1.5.2.jar”/>
<include name=”**/log4j-1.2.8.jar”/>
</fileset>
<fileset dir=”\${weblogic.lib}”>
<include name=”**/*.jar”/>
</fileset>
</classpath>
</javac>
</target>
<!– =================================================== –>
<!– Genera el ear descomprimido dentro del directorio build –>
<!– =================================================== –>
<target name=“prepare” description=“Genera el ear descomprimido dentro del directorio build”>
<!– Se copia el directorio web –>
<copy todir=”\${war.dir}”>
<fileset dir=”\${webroot.dir}” />
</copy>
<!– Se copian los ficheros de las fuentes que no son los fuentes –>
<copy todir=”\${classes.dir}”>
<fileset dir=”\${basedir}/src/java” >
<exclude name=”**/*.java”/>
</fileset>
</copy>
<!– Se crea el directorio de configuración –>
<mkdir dir=”\${war.dir}/WEB-INF/propertyFiles” />
<!– Se copian los ficheros de configuración–>
<copy file=”\${conf.dir}/propertyFiles/\${entorno}.\${nombreApl}.properties” tofile=”\${war.dir}/WEB-INF/propertyFiles/\${nombreApl}.properties” />
<copy file=”\${conf.dir}/propertyFiles/\${entorno}.log4j.properties” tofile=”\${war.dir}/WEB-INF/propertyFiles/log4j.properties” />
<!– Se copian las librerias –>
<copy todir=”\${war.dir}/WEB-INF/lib”>
<fileset dir=”\${basedir}/lib”>
<include name=”**/antlr-2.7.2.jar”/>
<include name=”**/antlr-2.7.2.jar”/>
<include name=”**/commons-beanutils-1.8.0.jar”/>
<include name=”**/commons-chain-1.2.jar”/>
<include name=”**/commons-collections-3.2.jar”/>
<include name=”**/commons-digester-2.0.jar”/>
<include name=”**/commons-fileupload-1.2.1.jar”/>
<include name=”**/commons-io-1.3.2.jar”/>
<include name=”**/commons-logging-1.0.4.jar”/>
<include name=”**/commons-validator-1.3.1.jar”/>
<include name=”**/freemarker-2.3.16.jar”/>
<include name=”**/iText-2.1.7.jar”/>
<include name=”**/jasperreports-4.1.1.jar”/>
<include name=”**/javassist-3.7.ga.jar”/>
<include name=”**/jxl-2.6.10.jar”/>
<include name=”**/ognl-3.0.jar”/>
<include name=”**/oro-2.0.8.jar”/>
<include name=”**/poi-3.7-20101029.jar”/>
<include name=”**/struts2-convention-plugin-2.2.1.1.jar”/>
<include name=”**/struts2-core-2.2.1.1.jar”/>
<include name=”**/struts2-spring-plugin-2.1.8.1.jar”/>
<include name=”**/struts2-tiles-plugin-2.2.1.1.jar”/>
<include name=”**/xwork-core-2.2.1.1.jar”/>
<include name=”**/aopalliance-1.0.jar”/>
<include name=”**/org.springframework.aop-3.1.0.M1.jar”/>
<include name=”**/org.springframework.asm-3.1.0.M1.jar”/>
<include name=”**/org.springframework.beans-3.1.0.M1.jar”/>
<include name=”**/org.springframework.context-3.1.0.M1.jar”/>
<include name=”**/org.springframework.context.support-3.1.0.M1.jar”/>
<include name=”**/org.springframework.core-3.1.0.M1.jar”/>
<include name=”**/org.springframework.expression-3.1.0.M1.jar”/>
<include name=”**/org.springframework.jdbc-3.1.0.M1.jar”/>
<include name=”**/org.springframework.transaction-3.1.0.M1.jar”/>
<include name=”**/org.springframework.web-3.1.0.M1.jar”/>
<include name=”**/org.springframework.web.servlet-3.1.0.M1.jar”/>
<include name=”**/org.springframework.web.struts-3.1.0.M1.jar”/>
<include name=”**/quartz-1.5.2.jar”/>
<include name=”**/log4j-1.2.8.jar”/>
</fileset>
</copy>
<!– Se crea el directorio META-INF de configuración del ear–>
<mkdir dir=”\${war.dir}/META-INF” />
<!– Se copia el contenido del Meta-inf del fichero ear–>
<copy file=”\${conf.dir}/MANIFEST.MF” tofile=”\${war.dir}/META-INF/MANIFEST.MF” />
<copy file=”\${conf.dir}/application.xml” tofile=”\${war.dir}/META-INF/application.xml” />
<copy file=”\${conf.dir}/weblogic-application.xml” tofile=”\${war.dir}/META-INF/weblogic-application.xml” />
</target>
<!– =================================================== –>
<!– Se genera el fichero war –>
<!– =================================================== –>
<target name=“war” depends=“clean, javac, prepare”>
<war destfile=”\${dist.dir}/\${entorno}/\${nombreApl}.war” webxml=”\${webinf.dir}/web.xml” manifest=”\${war.dir}/META-INF/MANIFEST.MF” >
<fileset dir=”\${war.dir}”>
<include name=”*.jsp” />
<include name=“jsp/**” />
<include name=“css/**” />
<include name=“images/**” />
<include name=“javascript/**” />
</fileset>
<webinf dir=”\${war.dir}/WEB-INF”>
<include name=“struts.xml” />
<include name=“propertyFiles/**” />
<include name=”**application*” />
<include name=“weblogic.xml”/>
</webinf>
<classes dir=”\${classes.dir}” />
<lib dir=”\${war.dir}/WEB-INF/lib/”>
<include name=”*.jar” />
</lib>
<metainf dir=”\${war.dir}/META-INF”>
<exclude name=“MANIFEST.MF” />
</metainf>
</war>
</target>
<!– =================================================== –>
<!– Se genera el fichero ear –>
<!– =================================================== –>
<target name=“ear” depends=“war”>
<ear destfile=”\${dist.dir}/\${entorno}/\${nombreApl}.ear” manifest=”\${war.dir}/META-INF/MANIFEST.MF” appxml=”\${war.dir}/META-INF/application.xml”>
<fileset dir=”\${dist.dir}/\${entorno}” includes=”\${nombreApl}.war”/>
<metainf file=”\${war.dir}/META-INF/weblogic-application.xml”/>
</ear>
</target>
</project>
origen
- documento de Devid Clemente
Weblogin_admin.DavidClemnte.doc
errores
- problemas al desplegar EPCNT_ADM en el archivo applicationContext-WS.xml habia una referencia a EPACF_ADM de forma que si esta aplicación estaba desplegada en el mismo servidor donde se probaba EPCNT_ADM no daba problemas pero en caso contrario no desplegaba