當使用WLST時,我遇到了幾個問題。 我們只對我們的服務器使用Solaris或Linux,所以請在回答時記住這一點。Weblogic腳本工具通用模塊
1:我應該在哪裏放置用於WLST的通用模塊,這些模塊與內部WLST函數(選項解析,日誌記錄,輸出,...)無關1.我寫了一些我自己的,以說明Oracle提供的Jython 2.1中缺乏現有的功能。
2:如何包含使用WLST內部函數的模塊,以便它們能夠正常工作,並且不會丟失其信息(連接模塊在返回主程序時不會保持連接狀態)。
問候
當使用WLST時,我遇到了幾個問題。 我們只對我們的服務器使用Solaris或Linux,所以請在回答時記住這一點。Weblogic腳本工具通用模塊
1:我應該在哪裏放置用於WLST的通用模塊,這些模塊與內部WLST函數(選項解析,日誌記錄,輸出,...)無關1.我寫了一些我自己的,以說明Oracle提供的Jython 2.1中缺乏現有的功能。
2:如何包含使用WLST內部函數的模塊,以便它們能夠正常工作,並且不會丟失其信息(連接模塊在返回主程序時不會保持連接狀態)。
問候
#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)))
。
對於#1,我遵循Ed Griebel的方法追加到sys.path。爲了支持舊版本,我使用了sys.argv [0]變量。對於#2,如果您在模塊中執行「import wlstModule」,那麼在主腳本中,我發現您需要繞過所提供的內部WLST函數,而使用wlstModule中的函數。只需在主腳本中添加相同的「import wlstModule」,然後將所有調用更改爲使用導入的wlstModule。例如,在主腳本中使用諸如「wlstModule.cd()」,「wlstModule.cmo()」和「wlstModule.set()」,而不是「cd()」,「cmo()」和「組()」。
你看過[this](http://docs.oracle.com/cd/E24329_01/web.1211/e24491/using_wlst.htm#autoId34)嗎?特別是「WLST命令作爲Jython模塊」。 – Mani
我看了,我試過了,我失敗了。我會再試一次。但是這僅包含Q2 – ShadowFlame
我認爲您寫的'new'模塊是否使用現有的WLST函數並不重要。所有需要完成的工作是將這些'new'py文件放在$ WL_HOME/common/wlst下,並在WLST啓動時導入它們。讓我知道你在做這件事時面臨的錯誤。 – Mani