0

我正面临 Websphere 和 RMS 的问题,以下是我所拥有的:

  • Windows 2003,sp2,64 位,企业版。
  • 微软办公字 2003 sp3。
  • 该机器已连接到域,并且我由域用户(使用电子邮件地址)登录。
  • 已安装 RMS 客户端。
  • 尝试从 Word it self 应用RMS 时,RMS 工作正常。
  • Websphere v6.1 (6.1.0.21),32 位,Java 版本:IBM J9 VM(内部版本 2.3,J2RE 1.5.0 IBM J9 2.3 Windows Server 2003 x86-32 j9vmwi322 3ifx-20080811(启用 JIT)。

我正在尝试使用JACOB库自动化 MS Word,并在 system32 文件夹中分配了 jacob dll (32),并创建了一个独立的 java 客户端,它打开 MS Word,打开 MS Word 文件并进行一些自动化操作(文本替换),这个java客户端工作正常,正确调用COM应用程序(MS Word),一切正常。之后,我尝试通过调用传递 RMS XML 模板文件路径的方法“ ApplyPolicy ”在 Word 文档上添加 RMS 策略来改进此客户端。我试过这个客户端,它工作正常。
之后,我改进了该客户端并将其转换为 Web 项目并尝试将其部署在 Websphere 6.1 上(在我通过将 JACOB dll 放入 websphere 本身的 /bin 目录中配置了带有 websphere 的 JACOB 库之后)。但在此之前,我删除了“ApplyPolicy”调用并尝试了它,它工作正常,MS word 文件打开并替换了文本,结果文件被正确保存。之后我恢复了“ApplyPolicy”的调用并尝试了,但是服务器挂了,页面还在加载中,我使用TASK管理器检查了进程,我发现有一个进程WINWORD.exe,当我尝试时杀死它,服务器返回并在其日志中打印错误(遇到 COM 异常:在调用时:ApplyPolicy 描述:)。
查了一下发现我运行独立的java应用打开任务管理器有一个java.exe *32进程和winword.exe *32进程,但是当我转换成web应用运行从在 websphere 内部并检查了任务管理器,已经有一个进程 java.exe *32(在服务器启动时启动),当我调用我的页面时,创建并挂起一个 winword.exe(没有 32)进程,结果服务器也挂了。所以请帮助我,任何帮助将不胜感激。

4

1 回答 1

0

亲爱的,幸运的是,我解决了这个问题:原因不是 64 位环境,而是运行服务器的用户...好吧,我来解释一下:
IBM Websphere Application Engine 服务配置为由本地系统,所以WASService.exejava.exe服务由本地系统启动,当 jacob 运行并调用msword.exe时,本地系统也启动了 msword.exe,到目前为止一切正常,但因为我正在调用"应用策略" 在文档上应用 RMS 的方法,因此 msword.exe 尝试使用本地系统应用策略,这是错误的,因为当您尝试应用 RMS 时,您必须由您登录的用户将其应用到系统(域用户),它可以对文档应用 RMS 策略。所以为了解决这个问题,我将负责运行“IBM Websphere Application Engine 服务”的用户从本地系统更改为真正的域用户(转到运行 -> 服务.exe:搜索IBM服务并更改登录用户),现在一切正常。

于 2010-08-18T08:06:55.090 回答