3

WLST と Jython に関していくつか質問があります。

OS: Unix/Linux

状況: 1)自動的に使用して作成されたもの
を含めることができない 2)メッセージをキャッシュせずに 使用するwlst-filewriteIniFile
org.python.util.jython

情報:
1)対話型セッションでwlst.py使用することによって生成される2)メッセージを 使用して jython を開始するとき 3) よく使用されるモジュールの場所が不明です。これはwriteIniFilejava weblogic.WLST
java org.python.util.jythonsys-package-mgr: can't create package cache dir, '/opt/oracle/fmw/fmw11gR1PS2/wlserver_10.3/server/lib/weblogic.jar/cachedir/packages'
weblogic.WLST<WL-Home>/wlserver_10.3/common/wlst/modules

質問:
1) 含まれている jython の共通モジュールはどこに配置する必要がありますか?
2) jython キャッシュの場所を変更するには?
3) 別のバージョンの jython に更新することは可能ですか?

ありとあらゆる助けを歓迎します。

4

2 に答える 2

4

はい、別の 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 '"$@"'

回避策として、writeInitfile から wlst-file を変更する必要があります (それでもスタック トレースが表示される場合がありますが、動作します)。

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 ファイルをインポートするだけです。

元:

 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 ...
于 2013-01-08T13:02:15.423 に答える
1

1)含まれているjythonの共通モジュールはどこに配置する必要がありますか? 共通モジュールを配置できます。私はテストしていませんが、クラスパスにある場合は、jython の新しいパッケージを選択する必要があります。

2) jython キャッシュの場所を変更するには? 一時ディレクトリは、すべてのユーザーがアクセスできる必要があります。WLSTTemp フォルダーが参照用のパッケージ キャッシュを作成する /var/ または /tmp に課されたアクセス許可を確認します。 キャッシュの問題を修正します。

3) 別のバージョンの jython に更新することは可能ですか? jython で拡張可能で、WLST には jython.jar が含まれています。他のすべての jython モジュールを使用するには、jython をインストールし、sys.path を jython インストール ディレクトリにポイントする必要があります。ヒントはディスカッション スレッドにあります

于 2012-08-10T06:53:48.970 に答える