将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)
答案 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.policy
或java.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";
};