在Domino 9.0.1 FP8上从Xpage调用webservice时出错

时间:2017-05-22 09:12:41

标签: xpages lotus-domino

将Domino升级到9.0.1 FP8后,尝试从XPage调用CXF WebService使用者时出现以下错误:

MASM0001:找不到默认配置文件[jaxws-tubes-default.xml]

相同的代码在Domino 9.0.1 FP7上运行良好。存根作为jar和权限导入:RuntimePermission" setContextClassLoader"和ReflectPermission" suppressAccessChecks"被授予。

它看起来像安全相关的问题,因为授予所有权限(生产服务器不接受)允许我在9.0.1 FP8上运行代码。

有没有人经历过相同或知道这种行为的原因?

MASM0001: Default configuration file [ jaxws-tubes-default.xml ] was not found. For more detailed information, please consult error-log-0.xml located in /usr/notes/domino/workspace/logs
java.lang.IllegalStateException: MASM0001: Default configuration file [ jaxws-tubes-default.xml ] was not found
    at com.sun.xml.internal.ws.assembler.MetroConfigLoader.init(MetroConfigLoader.java:139)
    at com.sun.xml.internal.ws.assembler.MetroConfigLoader.<init>(MetroConfigLoader.java:116)
    at com.sun.xml.internal.ws.assembler.TubelineAssemblyController.getTubeCreators(TubelineAssemblyController.java:90)
    at com.sun.xml.internal.ws.assembler.MetroTubelineAssembler.createClient(MetroTubelineAssembler.java:115)
    at com.sun.xml.internal.ws.client.Stub.createPipeline(Stub.java:340)
    at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:307)
    at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:240)
    at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:255)
    at com.sun.xml.internal.ws.client.sei.SEIStub.<init>(SEIStub.java:96)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getStubHandler(WSServiceDelegate.java:827)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:816)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:449)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:417)
    at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:399)
    at javax.xml.ws.Service.getPort(Service.java:130)
    at eu.europa.ec.taxud.vies.services.checkvat.CheckVatService.getCheckVatPort(CheckVatService.java:56)

3 个答案:

答案 0 :(得分:0)

检查工作FP7服务器上的java.policy或java.pol文件。升级会定期覆盖java.policy,有时候已知会删除该文件。如果它与安全相关,则服务器的Java策略必须不同。

答案 1 :(得分:0)

我昨天遇到了另一个与Java安全相关的问题,这也可能导致您的问题。我使用GSON进行JSON解析,但升级到FP8后它停止工作并引发了安全错误:

Agent Manager: Agent  error: java.security.AccessControlException: 
  Access denied ("java.lang.RuntimePermission" "accessDeclaredMembers")

由于FP8升级将JVM升级到Java 8,显然安全模型中发生了一些变化。解决方案是将此额外权限添加到我的java.pol文件中:

grant {
   permission java.lang.RuntimePermission "accessDeclaredMembers";
};

答案 2 :(得分:0)

我从Java代理访问Web服务时遇到了同样的错误。在FP8 +中,java.policyjava.pol文件中似乎需要另一个授权:

   permission java.io.FilePermission "${java.home}/lib/-", "read";  

jaxws-tubes-default.xml文件位于lib文件夹中的resources.jar文件中。

为了从多米诺骨牌服务器上的Java代理访问我的Web服务,我现在有一个带有以下内容的java.pol文件:

grant {
   permission java.lang.RuntimePermission "getClassLoader";
   permission java.lang.RuntimePermission "setContextClassLoader";
   permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
   permission java.io.FilePermission "${java.home}/lib/-", "read";  
};