2012-08-09 93 views
3

我有一個關於WLST和Jython幾個問題:WLST VS的Jython的Weblogic 10.3.3

操作系統:Unix/Linux操作系統

現狀:
1)無法通過包括使用writeIniFile自動
創建wlst-file 2)採用org.python.util.jython沒有緩存消息

信息:
1)通過在使用writeIniFile產生wlst.py交互java weblogic.WLST會話
2)當使用java org.python.util.jython啓動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版本?

任何和所有的幫助歡迎。

回答

1

1)應該在哪裏爲通用模塊放置包含的jython? 您可以放置​​通用模塊,我沒有測試它,但是如果它在classpath中,它必須爲jython選擇新的包。

2)如何更改jython緩存位置? 臨時目錄必須可供所有用戶訪問。檢查/ var /或/ tmp的權限,其中WLSTTemp文件夾使包緩存供參考 Caching issue fix

3)是否可以更新到另一個jython版本? 它可以用jython擴展,WLST包含jython.jar。要使用所有其他jython模塊,您應該安裝jython並將sys.path指向jython安裝目錄。提示可在discussion thread

4

是的,你可以使用另一個jython,但它不被支持,並有一些你必須忍受的deffects。我們使用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 '"[email protected]"' 

而且作爲一種變通方法,你必須修改從writeInitfile的WLST文件,(你可能仍然得到一個堆棧跟蹤,但它會工作)

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:9c148a2, 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 ... 
相關問題