WLST против Jython Weblogic 10.3.3

У меня есть несколько вопросов по WLST и Jython:

ОС: Unix / Linux

Ситуация:
1) Невозможно включить wlst-file, созданный с помощью writeIniFile автоматически
2) с использованием org.python.util.jython без кэширования сообщения

Информация:
1) wlst.py сгенерировано с использованием writeIniFile в интерактивном java weblogic.WLST сеансе
2) при запуске jython с использованием java org.python.util.jython отображается сообщение sys-package-mgr: can't create package cache dir, '/opt/oracle/fmw/fmw11gR1PS2/wlserver_10.3/server/lib/weblogic.jar/cachedir/packages'
3) расположение часто используемых модулей неизвестно. Для weblogic.WLST это <WL-Home>/wlserver_10.3/common/wlst/modules

Вопросы:
1) где должны быть размещены общие модули для включенного jython?
2) как изменить расположение кеша jython?
3) можно ли обновить до другой версии jython?

Любая помощь приветствуется.


person ShadowFlame    schedule 09.08.2012    source источник


Ответы (2)


Да, вы можете использовать другой jython, но он не поддерживается, и есть некоторые недостатки, с которыми вам придется столкнуться. Мы используем jython 2.7a2.

Вот сценарий, который мы используем для запуска jyton. Он изменит расположение кеша и добавит каталог FKUTILS в путь к классам (там мы храним наши собственные модули)

#!env sh
# Script to run jython with wlst as a module
# set up WL_HOME, the root directory of your WebLogic installation
WL_HOME="/produkter/oracle/weblogic/wlserver"
WLST_OFFLINE_LOG=/tmp/wlstblaj.$$.log
WLST_CACHEDIR=~/.jythoncachedir
FKUTILS="/program/fkuitls/"
JYTHON="/program/jython"

killed () {
   echo ""
   echo Cleaning up tempfile: $WLST_OFFLINE_LOG
   rm -rf $WLST_OFFLINE_LOG
   trap - 0
}


umask 027
touch $WLST_OFFLINE_LOG
chmod 777 $WLST_OFFLINE_LOG
if [ ! -d $WLST_CACHEDIR ] ; then
    mdkir -p $WLST_CACHEDIR
fi

trap killed 0 1 2 15
# set up common environment
. "${WL_HOME}/server/bin/setWLSEnv.sh" 2>&1 > /dev/null

CLASSPATH="${CLASSPATH}${CLASSPATHSEP}${FMWLAUNCH_CLASSPATH}${CLASSPATHSEP}${DERBY_CLASSPATH}${CLASSPATHSEP}${DERBY_TOOLS}${CLASSPATHSEP}${POINTBASE_CLASSPATH}${CLASSPATHSEP}${POINTBASE_TOOLS}:${FKUTILS}"

#echo CLASSPATH=${CLASSPATH}

JVM_ARGS="-classpath ${JYTHON}/jython.jar:${CLASSPATH}  -Dpython.path=${CLASSPATH}:${HOME} ${WLST_PROPERTIES} ${JVM_D64} ${MEM_ARGS} ${CONFIG_JVM_ARGS} -Dpython.cachedir=$WLST_CACHEDIR -Dwlst.offline.log=$WLST_OFFLINE_LOG -Dweblogic.management.confirmKeyfileCreation=true -Djava.security.egd=file:///dev/urandom"

eval '"${JAVA_HOME}/bin/java"' ${JVM_ARGS} org.python.util.jython '"$@"'

И в качестве обходного пути вам нужно изменить wlst-файл из writeInitfile (и вы все равно можете получить трассировку стека, но она будет работать)

from weblogic.management.scripting.utils import WLSTUtil
import sys

origPrompt = sys.ps1
# Workaround start..    
try:
    theInterpreter = WLSTUtil.ensureInterpreter()
except:
    pass

theInterpreter = WLSTUtil.ensureInterpreter()

# End workaround.

WLSTUtil.ensureWLCtx(theInterpreter)
execfile(WLSTUtil.getWLSTScriptPath())
execfile(WLSTUtil.getOfflineWLSTScriptPath())
exec(WLSTUtil.getOfflineWLSTScriptForModule())
execfile(WLSTUtil.getWLSTCommonModulePath())
theInterpreter = None
sys.ps1 = origPrompt
modules = WLSTUtil.getWLSTModules()
for mods in modules:
  execfile(mods.getAbsolutePath())
wlstPrompt = "false"

после этого вы можете просто запустить jython первый скрипт и импортировать ваш wlst-файл.

Ex:

 Jython 2.7a2 (default:9c148a201233, May 24 2012, 15:49:00) [Java
 HotSpot(TM) 64-Bit Server VM (Sun Microsystems Inc.)] on java1.6.0_34
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import fkwl as wl
 >>> wl.connect('user','password','t3://server') 
 Connecting to t3://server with userid user ...
person Mikael Viklund    schedule 08.01.2013

1) где разместить общие модули для включенного jython? Вы можете разместить общие модули, я не тестировал его, но если он находится в пути к классам, он должен выбрать новые пакеты для jython.

2) как изменить расположение кеша jython? Каталог temp должен быть доступен всем пользователям. Проверьте разрешения, наложенные для / var / или / tmp, где папка WLSTTemp выполняет кэширование пакета для справки Исправлена ​​проблема с кешированием

3) возможно ли обновление до другой версии jython? Его можно расширить с помощью jython, WLST включает jython.jar. Чтобы использовать все остальные модули jython, вы должны установить jython и указать свой sys.path в каталог установки jython. Подсказки доступны в ветке обсуждения

person PavanDevarakonda    schedule 10.08.2012