我遇到了Websphere和RMS的问题,以下是我所拥有的:
我正在尝试使用 JACOB 库自动化MS字,我在system32文件夹中分配了jacob dll(32),并创建了一个打开MS Word的独立Java客户端,并打开MS word文件并进行一些自动化(文本替换),这个java-client工作正常,并正确调用COM应用程序(MS Word),一切正常。
之后,我尝试通过调用方法“ ApplyPolicy ”传递RMS XML模板文件的路径,在word文档上添加RMS策略来改进此客户端。我试过这个客户端,它工作正常
之后,我改进了该客户端并将其转换为Web-Project并尝试将其部署在Websphere 6.1上(在我使用websphere配置JACOB库之后,将JACOB dll放在websphere本身的/ bin目录中)。但在此之前我删除了“ApplyPolicy”调用并尝试了它,它运行正常,MS word文件打开,文本替换和结果文件正确保存。之后我恢复了“ApplyPolicy”的调用并尝试了,但服务器挂了,页面仍在加载,我使用TASK管理器检查过程,我发现有一个进程WINWORD.exe,当我试图杀死它,服务器返回并在其日志中打印错误(遇到COM异常:在Invoke of:ApplyPolicy描述:远程过程调用失败。)。
经过调查,我发现当我运行独立的java应用程序并打开任务管理器时,有一个java.exe * 32进程和winword.exe * 32进程,但是当我将它转换为Web应用程序并从中运行它时在websphere内部并检查任务管理器已经有一个进程java.exe * 32(在服务器启动时启动)当我调用我的页面时,创建并挂起了一个winword.exe(没有32)进程,因此服务器也被绞死了。
所以请帮助我,任何帮助将不胜感激。
答案 0 :(得分:0)
亲爱的,幸运的是,我解决了以下问题:
原因不是64位环境,而是运行服务器的用户......好的我会解释:
IBM Websphere Application Engine服务配置为由本地系统启动,因此 WASService.exe 和 java.exe 服务由本地系统启动,当jacob运行并调用 msword.exe 本地系统启动的msword.exe时,到现在一切正常但是因为我正在调用“< strong> ApplyPolicy “在文档上应用RMS的方法,因此msword.exe尝试使用本地系统应用策略,这是错误的,因为当您尝试应用RMS时,您必须由用户应用它由它记录到系统(域用户),该系统可以在文档上应用RMS策略。因此,为了解决这个问题,我将负责运行“IBM Websphere Application Engine服务”的用户从本地系统更改为真实域用户(转到运行 - &gt; services.exe:搜索IBM服务并更改了登录用户),现在一切正常。