Skip to content

Proceso BPEL no logra copiar una variable al encontrarla vacía

Contexto: Proceso BPEL editado en JDev y desplegado en SOA Suite 11g.

Problema: Al crear un proceso BPEL, usando JDeveloper para modificar una operación Assign y creando un copy entre dos variables, en ocasiones se encuentra el siguiente error al invocar el endpoint del proceso:

Error in evaluate expression at line “206″. The result is empty for the XPath expression : “/ns2:someVariable/elementoSalida/consulta_p_cod_rspta”.

E incluso, si se revisa la traza de auditoría, se encuentra que el invoke que alimenta la variable de origen es exitoso, lo cual da menos pistas sobre el problema.

Solución: es necesario revisar el WSDL del partnerLink que hace el invoke previo, asegurándose de que la definición del esquema sea qualified (que es el problema, el BPEL engine de SOA Suite 11g no logra seguir el XPath generado por JDeveloper porque no tiene el namespace para cada nivel).

<xsd:schema targetNamespace=”http://www.itosmosys.com/datapi/servicios/consultaProductosInt”
elementFormDefault=”qualified”>

Con esto, al rehacer el copy en la operación Assign, el XPath debe quedar /ns2:someVariable/ns2:elementoSalida/ns2:consulta_p_cod_rspta”.

Nota: Si el WSDL fuese generado por JDev 11g, este problema no ocurriría, pero los geenrados por DataPi no tienen este atributo y es la causa del fallo, pues es requerido por el BPEL engine desde 11g.

Tagged , , ,

Usar una versión de Eclipse compilada para 64 bits

Tomado de la documentación de Eclipse respecto de las versiones de Eclipse compiladas para 64 bits.

This build requires a 64-bit JVM, and will not run with a 32-bit JVM.
You can, for example, use the Sun 64-bit 1.5 JVM for AMD64.  Note
that the Sun 1.4.2 JVM for AMD64 is 32-bit and therefore cannot be
used to run this build.

The Eclipse 3.3 – 3.6 launchers for Windows have a problem with the Oracle/Sun Java VM version ’1.6.0_21′. You have two choices to work around this:

1. switch back to ’1.6.0_20′
2. add the following line after “-vmargs” to your eclipse.ini:
-XX:MaxPermSize=256m

Tagged , ,

Agregar comentarios condicionales para IE en archivos XSL

En ocasiones, es necesario que la transformación previa a la serialización incluya comentarios que deben conservarse en el HTML resultante. Por ejemplo, cuando se requieren comentarios condicionales para que ciertas versiones de Internet Explorer carguen recursos específicos. Para lograr que las transformaciones no “limpien” la página resultante y descarten el comentario requerido, se usa la etiqueta <xsl:text> como se muestra a continuación (nota: todo debe estar en la misma línea).

<xsl:text disable-output-escaping="yes">
<![CDATA[<!--[if IE 6]><script src="../resources/scripts/ie6/ie6script.js">&nbsp;</script>
<script type="text/javascript">var SOMETHING = { path: "../folder1/folder2/" }</script>
<![endif]-->]]></xsl:text>

En la arquitectura estándar, el resultado de este bloque sería

<!--[if IE 6]>
<script src="../resources/scripts/ie6/ie6script.js">&nbsp;</script>
<script type="text/javascript">var SOMETHING = { path: "../folder1/folder2/" }</script>
<![endif]-->

Más información en este sitio, este sitio y este otro sitio.

Borrar un dominio de Weblogic 11g

Es posible borrar un dominio creado en weblogic 11g, siguiendo los pasos descritos a continuación.

Por ejemplo, si se va a borrar el dominio llamado test_domain, es necesario:

  1. Abrir el archivo domain-registry.xml en la carpeta $Middleware_HOME.Borrar la línea en la que está registrada la ubicación del dominio test_domain.
  2. Abrir el arcihvo nodemanager.domains en el directorio $Middleware_HOME\wlserver_10.3\common\nodemanager\ folder. Borrar la entrada correspondiente al dominio test_domain.\
  3. Borrar el directorio test_domain (en este ejemplo, $Middleware_HOME/user_projects/domains/test_domain).
  4. Borrar el directorio test_domain en la carpeta de aplicaciones (en este ejemplo, $Middleware_HOME/user_projects/applications/test_domain).

Por último, el repositorio en la BD Oracle debe editarse, eliminando las entradas correspondientes al dominio (o crear un nuevo repositorio usando el instalador).

(Tomado de este post)

BPEL 1.1 – Edición

En los archivos wsdl se deben tener el atributo
elementFormDefault=”qualified”
en la etiqueta esquema

Para evitar el número de versión en los endPoint esta se elimina para el llamado del proceso
Ej:
El Bpel que genera el endPoint:

http://192.168.60.222:9700/orabpel/default/NombreBpel/v_1_0/NombreBpel

Puede ser ejecutado con el endPoint:

http://192.168.60.222:9700/orabpel/default/NombreBpel

Se debe tener en cuenta que la versión del BPEL sea la versión por defecto en caso de haber varias instancias

Tagged ,

Cambiar contraseña adminstrador Weblogic 11g

El procedimiento para cambiar la contraseña en un administrador de dominio es el siguiente:
# fijar variables de entorno
export MWHOME=/ruta/a/oracle/middleware
export DOMAIN_HOME=$MWHOME/user_projects/domains/trouble_domain
export CLASSPATH=$CLASSPATH:$MWHOME/wlserver_10.3/server/lib/weblogic.jar
cd $DOMAIN_HOME/bin
. ./setDomainEnv.sh
# crear un nuevo autenticador por defecto en el dominio
cd ../security
mv DefaultAuthenticatorInit.ldift oldDefaultAuthenticator
java weblogic.security.utils.AdminAccount weblogic <mynewpass> .
# removing boot.properties if exists
cd ../servers/AdminServer
mv data data_old
cd security/
mv boot.properties oldboot.properties
# reiniciar el admin server con la nueva contraseña
cd $DOMAIN_HOME
./startWebLogic.sh
Tagged , , ,

Configurar servidor Weblogic para evitar apagado inesperado

Ubicar el archivo license.bea, usualmente ubicado en el directorio /bea.

Modificar todo el contenido del archivo por una versión modificada con lo siguiente:

<?xml version="1.0" encoding="ISO-8859-1"?> 

<bea-licenses>
 <license-group format="1.0" product="WebLogic Platform" release="9.2">
 <license
 component="2PC"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC4CFQDCiVHYLfECNd4SdSkHmZkyrk3PVQIVAMEgUJeWcdSOcbReagDHat/fSNRU"
 />
 <license
 appnames="consoleapp"
 component="Campaign Manager"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFQCVRo0ndu+7jFn6BbPriUw0iKG+6wIUeRBxCYFa+VS0hwE8CPWfpSEaWQE="
 />
 <license
 appnames="consoleapp"
 component="Commerce"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFASDELbrvFLHRxaNlMQ6ZnWKlfczAhUAnL8NyPjo0VrBiY2u/POuSFmJDEw="
 />
 <license
 component="Connector"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MCwCFAcWhBmHRi3GyvT0kGQB9HzEwUffAhRg0PRXpBXEoKrdyLrcPkfXFgnsJg=="
 />
 <license
 component="EJB 1.0"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC4CFQDdpbKl2XePoc1HVEGLkyAG1RIdFgIVAKEN9KAX9qiANIRSqJMiDTTc7sFt"
 />
 <license
 component="EJB 2.0"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MCwCFGN9kV9nKB2DTkdK8gw6WKHHAsnxAhQhVP93HsgJoqbWLjEOdZskuYqt4g=="
 />
 <license
 component="Enterprise Web Services"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MCsCEz2c6tZBHYMbrrXYXw0M/3eDykUCFCdm5XeU0gZJE58LpZb8Xr1y56t3"
 />
 <license
 component="JMS"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFBVwICgczG4ual0PAb81UTr0dgt9AhUA02OA6IGYmrEduTYsebnoLF55gcQ="
 />
 <license
 appnames="consoleapp"
 component="Personalization"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MCwCFAcjhzbSuRk22rdxI0vedzFPMweiAhR/CApUaFyD+L+ZASkzv/SKlqNOuA=="
 />
 <license
 appnames="consoleapp"
 component="Portal"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFB8GozTeR5OIwLpVJVWxmMYgsFvVAhUAhVjbG6VYDknW2oDtyB6ngQNDOag="
 />
 <license
 appnames="consoleapp"
 component="PortalFramework"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFGCcV2MeItb0UgO9kfFJ+61OJfrZAhUArHJfH9LlCajZjBtvrbOi0pI9nwY="
 />
 <license
 component="SSL/Domestic"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFQCpnmGJAdNTY8DgMD8HofK/gofi3gIURn0+InwjTYJ1Cw5Qt+9aMTUEuaQ="
 />
 <license
 component="SSL/Export"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC4CFQCMvUVqxlCEEr18UcImw34vTxEvVAIVAJXBdyK51a2o8YfIXUbFmTLOlgoS"
 />
 <license
 component="Servlet Session"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 sessions="unlimited"
 type="RTK"
 units="unlimited"
 signature="MC0CFQDN6x9cOVZNWiLx94IvLftg7XVEvQIUeAjR0VFg3fR3XSQhT7Opi47Hgig="
 />
 <license
 component="WebLogic"
 cpus="unvalued"
 expiration="never"
 ip="any"
 licensee="Customer"
 serial="454493271161-2642576859048"
 type="RTK"
 units="unlimited"
 signature="MC0CFQCrS/MOzSUggEE8EJvZXOooE+QZdAIUEVuZJ3YGVeAQYx+hlvAE2Issv8U="
 />
 </license-group>
</bea-licenses>

Una vez guardado el archivo, debe  reiniciarse (o iniciarse) el servidor.

Tagged ,

Comando asignación estática de IP en Windows

En una shell con permisos de administrador:
netsh interface ip set address “<nombre interfaz de red>” static <ip> <mascara> <gateway>
netsh interface ip set dns “<nombre interfaz de red>” static <ip_dns1> primary
netsh interface ip add dns “<nombre interfaz de red>” <ip_dns2>
Tagged , , ,

Validar instalación de aplicación que use WS con Axis2/Rampart (WS-Security)

El proceso debe seguir así:

  1. Validar la contraseña definida en los .properties
  2. Validar la ruta a los certificados en los .properties
  3. Validar que el WSDL del servicio a consumir tenga en su contrato el segmento <policy>.
  4. Validar la ruta a los certificados en los servicios (services.xml).
  5. Validar la contraseña de los keystores usando keytool.
  6. verificar los archivos PWCBCallback.java en la aplicación que consulta y CallbackServicioNHandler.java en la aplicación que ofrece los servicios con WS-Security. Estos deben estar suministrando las contraseñas apropiadas para hacer uso del certificado en el keystore.
  7. Validar configuración del Tomcat y despliegue apropiado del mismo.
  8. Validar configuración del servidor. Verificar que la hora del servidor que consume el servicio NO sea posterior a la hora en el servidor que expone los servicios (procurar que los dos servidores estén sincronizados). [Si el mensaje SOAP llega del futuro, Axis2 retornará un Error HTTP 500].
Tagged

Importar llave privada de JKS a un PKCS12

Un PKCS12 se puede importar en windows para ser utilizado en .NET.

keytool -importkeystore -srckeystore mystore.jks -destkeystore mystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass mysecret -deststorepass mysecret -srcalias myalias -destalias myalias -srckeypass mykeypass -destkeypass mykeypass -noprompt

Tagged , ,