1
votes

After upgrading Domino to 9.0.1 FP8 I'm getting following error trying to call the CXF WebService consumer from XPage:

MASM0001: Default configuration file [ jaxws-tubes-default.xml ] was not found

The same code works fine on Domino 9.0.1 FP7. The stub is imported as a jar and permissions: RuntimePermission "setContextClassLoader" and ReflectPermission "suppressAccessChecks" are granted.

It looks like security related problem since granting all permissions (not acceptable for production server) allowed me to run the code on the 9.0.1 FP8.

Has anyone experienced the same or knows the reason of this behavior?

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
It's not a permission error. It happened to my on one of 2 servers I upgraded to FP8. I spent some time trying to fix it and then decided to ditch the web service - it was just 1 - and replace it with something else. This means I didn't solve the problem. I thought of performing a clean installation or open a pmr with IBM but eventually did none of thoseshillem
I discovered that It is possible to run my webservice from Xpage on FP8 server using java consumer code exported from the db according to manual provided at: link.TomSta

3 Answers

1
votes

I have gotten the same error accessing a web service from a Java agent. In FP8+ another grant seems to be required in the java.policy or java.pol file:

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

The jaxws-tubes-default.xml file is located in the resources.jar file in the lib folder.

For my web service to be accessed from a Java agent on the domino server I now have a java.pol file with the following:

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";  
};
0
votes

Check the java.policy or java.pol file on the working FP7 server. Upgrades regularly overwrite java.policy and, on occasion, have been known to remove that file. If it's security-related, the server's Java policy must be different.

0
votes

I ran into another Java security related issue issue yesterday that might also be causing your problem. I'm using GSON to do JSON parsing, but after an upgrade to FP8 it stopped working and threw a security error:

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

Since the FP8 upgrade als upgrades the JVM to Java 8, apparently something changed in the security model. The solution was to add this extra permission to my java.pol file:

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