码迷,mamicode.com
首页 > Web开发 > 详细

Jython WLST WebLogic

时间:2015-07-25 21:26:29      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:

 

我的操作系统: Windows Server 2008 R2 Enterprise (64-bit)

安装Jython2.7步骤:

1. 安装 vc2008_vcredist_x86.exe (注意: 虽然操作系统是64位的,但Jython2.7依赖32位的VC9.0)

2. 安装 jdk-8u25-windows-x64.exe (注意: Jython2.7要求 >=JDK1.7,JDK1.8适合WIN7和WIN2k8, JDK1.6适合WINXP),安装路径不要包含空格和中文

3. 设置环境变量:JAVA_HOME, JRE_HOME, CLASSPATH, PATH

set JAVA_HOME=C:\Java\jdk1.8.0_25
set JRE_HOME=%JAVA_HOME%\jre
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
set PATH=%JAVA_HOME%\bin;%JRE_HOME%\bin;%PATH%

4. 重启并验证

javac -version

5. 安装 jython-installer-2.7.0.jar

打印帮助信息
java -jar jython-installer-2.7.0.jar --help

图形方式安装Jython2.7
java -jar jython-installer-2.7.0.jar

控制台方式安装Jython2.7
java -jar jython-installer-2.7.0.jar -console

 6. 设置环境变量: JYTHON_HOME

set JYTHON_HOME=C:\jython2.7.0
set PATH=%JYTHON_HOME%\bin;%PATH%

7. 验证Jython

技术分享
C:\jython2.7.0\bin>dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 88D3-F4D5

 C:\jython2.7.0\bin 的目录

2015/07/25  18:21    <DIR>          .
2015/07/25  18:21    <DIR>          ..
2015/07/25  18:20            95,087 easy_install-2.7.exe
2015/07/25  18:20            95,087 easy_install.exe
2015/04/29  02:25         1,236,153 jython.exe
2015/07/25  18:21            95,059 pip.exe
2015/07/25  18:21            95,059 pip2.7.exe
2015/07/25  18:21            95,059 pip2.exe
2015/04/29  02:25         2,459,136 python27.dll
               7 个文件      4,170,640 字节
               2 个目录 96,630,317,056 可用字节

C:\>jython
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_25
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\>
View Code

 

至此,Jython2.7已经安装完成。

 

如果未安装 vc2008_vcredist_x86.exe的话,运行 jython时会提示如下:

C:\>jython
Error loading Python DLL: C:\JYTHON~1.0\bin\python27.dll (error code 14001)

建议:删除Jython2.7安装目录,安装 vc2008_vcredist_x86.exe后,再安装 jython-installer-2.7.0.jar

 

当使用 DEPENDS.EXE 查找目标依赖关系也无头绪的时候,通过 sxstrace 工具跟踪也许能发现些蛛丝马迹,我就是通过该工具确定了下面的依赖关系:

jython-installer-2.7.0.jar 依赖 vc2008_vcredist_x86.exe

python-2.7.9.amd64.msi 依赖 vc2008_vcredist_x64.exe

 

sxstrace 工具使用如下:

开启跟踪,按 Enter 停止跟踪
sxstrace trace -logfile:C:/TEMP/1.txt

生成分析日志
sxstrace trace -logfile:C:/TEMP/1.txt -outfile:C:/TEMP/2.txt

 

下面贴出 sxstrace 跟踪 Jython2.7运行时的报文,从日志中可以看出,其依赖32位的VC9.0

 

技术分享
=================
开始生成激活上下文。
输入参数:
    Flags = 0
    ProcessorArchitecture = Wow32
    CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en
    ManifestPath = C:\JYTHON~1.0\bin\python27.dll
    AssemblyDirectory = C:\JYTHON~1.0\bin    Application Config File = 
-----------------
信息: 正在解析清单文件 C:\JYTHON~1.0\bin\python27.dll。
    信息: 指令清单定义标识是 (null)。
    信息: 参考: Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
信息: 正在解析参考 Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。
    信息: 正在解析 ProcessorArchitecture WOW64 的参考。
        信息: 正在解析区域性 Neutral 的参考。
            信息: 正在应用绑定策略。
                信息: 未找到发布服务器策略。
                信息: 未找到绑定策略重定向。
            信息: 开始程序集探测。
                信息: 未找到 WinSxS 中的程序集。
                信息: 尝试在 C:\Windows\assembly\GAC_32\Microsoft.VC90.CRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 未找到区域性 Neutral 的指令清单。
            信息: 结束程序集探测。
    信息: 正在解析 ProcessorArchitecture x86 的参考。
        信息: 正在解析区域性 Neutral 的参考。
            信息: 正在应用绑定策略。
                信息: 未找到发布服务器策略。
                信息: 未找到绑定策略重定向。
            信息: 开始程序集探测。
                信息: 未找到 WinSxS 中的程序集。
                信息: 尝试在 C:\Windows\assembly\GAC_32\Microsoft.VC90.CRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 尝试在 C:\JYTHON~1.0\bin\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 尝试在 C:\JYTHON~1.0\bin\Microsoft.VC90.CRT.MANIFEST 上探测指令清单。
                信息: 尝试在 C:\JYTHON~1.0\bin\Microsoft.VC90.CRT\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 尝试在 C:\JYTHON~1.0\bin\Microsoft.VC90.CRT\Microsoft.VC90.CRT.MANIFEST 上探测指令清单。
                信息: 未找到区域性 Neutral 的指令清单。
            信息: 结束程序集探测。
    错误: 无法解析参考 Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。
错误: 生成激活上下文失败。
结束生成激活上下文。
View Code

 

下面贴出 sxstrace 跟踪 Python2.7安装时的报文,从日志中可以看出,其依赖64位的VC9.0

技术分享
=================
开始生成激活上下文。
输入参数:
    Flags = 0
    ProcessorArchitecture = AMD64
    CultureFallBacks = zh-CN;zh-Hans;zh;en-US;en
    ManifestPath = C:\Python27\python.exe
    AssemblyDirectory = C:\Python27    Application Config File = 
-----------------
信息: 正在解析清单文件 C:\Python27\python.exe。
    信息: 指令清单定义标识是 (null)。
    信息: 参考: Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
信息: 正在解析参考 Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。
    信息: 正在解析 ProcessorArchitecture amd64 的参考。
        信息: 正在解析区域性 Neutral 的参考。
            信息: 正在应用绑定策略。
                信息: 未找到发布服务器策略。
                信息: 未找到绑定策略重定向。
            信息: 开始程序集探测。
                信息: 未找到 WinSxS 中的程序集。
                信息: 尝试在 C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 尝试在 C:\Python27\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 尝试在 C:\Python27\Microsoft.VC90.CRT.MANIFEST 上探测指令清单。
                信息: 尝试在 C:\Python27\Microsoft.VC90.CRT\Microsoft.VC90.CRT.DLL 上探测指令清单。
                信息: 尝试在 C:\Python27\Microsoft.VC90.CRT\Microsoft.VC90.CRT.MANIFEST 上探测指令清单。
                信息: 未找到区域性 Neutral 的指令清单。
            信息: 结束程序集探测。
    错误: 无法解析参考 Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。
错误: 生成激活上下文失败。
结束生成激活上下文。
View Code

 

Jython2.7应用场景:

Jython导入wl.py模块后,通过WLST脚本语言可以与WebLogic进行实时交互。

 

确保WebLogic已启动,然后执行如下代码:

@ECHO OFF
SETLOCAL

set WL_HOME=C:\Oracle\Middleware\wlserver_10.3
call "%WL_HOME%\server\bin\setWLSEnv.cmd"

@REM NO SSL
@REM java weblogic.WLST helloworld.py

@REM SSL
java -Dweblogic.security.SSL.ignoreHostnameVerification=true ^
     -Dweblogic.security.TrustKeyStore=DemoTrust ^
     weblogic.WLST ^
     helloworld.py

ENDLOCAL

 

helloworld.py代码如下:

#!/usr/bin/env jython
# -*- coding: utf-8 -*-

import os
import wl
import sys
sys.path.append(C:\\jython2.7.0\\Lib)
sys.path.append(C:\\jython2.7.0\\Lib\\site-packages)

username=weblogic
password=12345678

# NO SSL
#wl.connect(username, password, t3://localhost:7001)

# SSL
wl.connect(username, password, t3s://localhost:7002)

wl.disconnect()

 

目前,发现一个问题:当仅仅是 jython 启动后,其所有模块都是可以导入的,但是,当通过 java weblogic.WLST helloworld.py 方式启动后,部分 jython自带的模块就无法正常导入,详见我发的帖子:http://segmentfault.com/q/1010000003003164

 

Jython WLST WebLogic

标签:

原文地址:http://www.cnblogs.com/zhangtaian/p/4676537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!