2012-10-11 25 views
1

當使用WLST時,我遇到了幾個問題。 我們只對我們的服務器使用Solaris或Linux,所以請在回答時記住這一點。Weblogic腳本工具通用模塊

1:我應該在哪裏放置用於WLST的通用模塊,這些模塊與內部WLST函數(選項解析,日誌記錄,輸出,...)無關1.我寫了一些我自己的,以說明Oracle提供的Jython 2.1中缺乏現有的功能。

2:如何包含使用WLST內部函數的模塊,以便它們能夠正常工作,並且不會丟失其信息(連接模塊在返回主程序時不會保持連接狀態)。

問候

+0

你看過[this](http://docs.oracle.com/cd/E24329_01/web.1211/e24491/using_wlst.htm#autoId34)嗎?特別是「WLST命令作爲Jython模塊」。 – Mani

+0

我看了,我試過了,我失敗了。我會再試一次。但是這僅包含Q2 – ShadowFlame

+0

我認爲您寫的'new'模塊是否使用現有的WLST函數並不重要。所有需要完成的工作是將這些'new'py文件放在$ WL_HOME/common/wlst下,並在WLST啓動時導入它們。讓我知道你在做這件事時面臨的錯誤。 – Mani

回答

0

#1我能夠通過將當前路徑sys.path中,包括在同一目錄作爲目標腳本庫.py文件。如果增加的sys.path是做事的Python的方式

import os, sys 
sys.path.append(os.path.dirname(os.path.abspath(inspect.getsourcefile(lambda:(True))))) 
import functions 

我不知道,但它能夠完成任務:舉例來說,如果我有一個文件functions.py,我會使用此代碼而且WLST也相當於"Wild West"

如果您使用舊版本的Weblogic,如10.x(可能是11g?),嵌入Python 2.1,您會發現它沒有許多現在標準庫,包括檢查庫。您必須使用sys.argv[0]而不是os.path.abspath(inspect.getsourcefile(lambda:(True)))

0

對於#1,我遵循Ed Griebel的方法追加到sys.path。爲了支持舊版本,我使用了sys.argv [0]變量。對於#2,如果您在模塊中執行「import wlstModule」,那麼在主腳本中,我發現您需要繞過所提供的內部WLST函數,而使用wlstModule中的函數。只需在主腳本中添加相同的「import wlstModule」,然後將所有調用更改爲使用導入的wlstModule。例如,在主腳本中使用諸如「wlstModule.cd()」,「wlstModule.cmo()」和「wlstModule.set()」,而不是「cd()」,「cmo()」和「組()」。