首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从环境、SB控制台或Weblogic提取已部署的OSB源代码

如何从环境、SB控制台或Weblogic提取已部署的OSB源代码
EN

Stack Overflow用户
提问于 2018-01-09 12:47:16
回答 1查看 692关注 0票数 0

谁能帮助我从环境或SB控制台或Weblogic获取源代码的方法。

我创建了导出JAR的python脚本,但我需要源代码。因为如果我解压jar,我不会得到确切的源代码,因为文件名被缩短了,一些代码被自动添加到wsdls、xqueries等文件中。

下面是我的第一个Python/Jython脚本:

代码语言:javascript
复制
    from java.io import FileInputStream
    from java.io import FileOutputStream
    from java.util import ArrayList
    from java.util import Collections
    from com.bea.wli.sb.util import EnvValueTypes
    from com.bea.wli.config.env import EnvValueQuery;
    from com.bea.wli.config import Ref
    from com.bea.wli.config.customization import Customization
    from com.bea.wli.config.customization import FindAndReplaceCustomization
  import sys

#=======================================================================================
# Utility function to load properties from a config file
#=======================================================================================
def exportAll(exportConfigFile):


def exportAll(exportConfigFile):
        try:
            print "Loading export config from :", exportConfigFile
            exportConfigProp = loadProps(exportConfigFile)
            adminUrl = exportConfigProp.get("adminUrl")
            exportUser = exportConfigProp.get("exportUser")
            exportPasswd = exportConfigProp.get("exportPassword")

            exportJar = exportConfigProp.get("exportJar")
            customFile = exportConfigProp.get("customizationFile")

            passphrase = exportConfigProp.get("passphrase")
            project = sys.argv[2]
            if project == None :
               project = exportConfigProp.get("project")

            connectToServer(exportUser, exportPasswd, adminUrl)

            ALSBConfigurationMBean = findService("ALSBConfiguration", "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")
            print "ALSBConfiguration MBean found"

            print "Input project: ", project
            if project == None :
                ref = Ref.DOMAIN
                collection = Collections.singleton(ref)
                if passphrase == None :
                    print "Export the config"
                    theBytes = ALSBConfigurationMBean.exportProjects(collection, None)
                else :
                    print "Export and encrypt the config"
                    theBytes = ALSBConfigurationMBean.export(collection, true, passphrase)
            else :
                ref = Ref.makeProjectRef(project);
                print "Export the project", project
                collection = Collections.singleton(ref)
                theBytes = ALSBConfigurationMBean.export(collection, false, None)

            aFile = File(exportJar)
            out = FileOutputStream(aFile)
            out.write(theBytes)
            out.close()
            print "ALSB Configuration file: "+ exportJar + " has been exported"
            if customFile != None:
                print collection
                query = EnvValueQuery(None, Collections.singleton(EnvValueTypes.WORK_MANAGER), collection, false, None, false)
                customEnv = FindAndReplaceCustomization('Set the right Work Manager', query, 'Production System Work Manager')
                print 'EnvValueCustomization created'
                customList = ArrayList()
                customList.add(customEnv)
                print customList
                aFile = File(customFile)
                out = FileOutputStream(aFile)
                Customization.toXML(customList, out)
                out.close()

            print "ALSB Dummy Customization file: "+ customFile + " has been created"
        except:
            raise

    #=======================================================================================
    # Utility function to load properties from a config file
    #=======================================================================================

    def loadProps(configPropFile):
        propInputStream = FileInputStream(configPropFile)
        configProps = Properties()
        configProps.load(propInputStream)
        return configProps

    #=======================================================================================
    # Connect to the Admin Server
    #=======================================================================================

    def connectToServer(username, password, url):
        connect(username, password, url)
        domainRuntime()


    # EXPORT script init
    try:
        exportAll(sys.argv[1])

    except:
        print "Unexpected error: ", sys.exc_info()[0]
        dumpStack()
        raise

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 14:16:41

导出的结果是已部署的单元。是的,由于在OSB运行时上的部署,添加/修改了一些元数据(部署也可能意味着直接在servicebus控制台上创建/编辑组件)。

要将其作为“源代码”从导出的jar中恢复,您可以简单地将其重新导入到JDeveloper (12c)或Eclipse with OEPE (11g)中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48161583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档