I am trying to run the built-in Google App Engine development server (sdk 1.7.3) inside the @BeforeClass test suite run by the maven plugin without reliable verification. The code to start is as follows:
private static final String HOST = "0.0.0.0"; private static final int PORT = 8887; private static DevAppServer devAppServer; @BeforeClass public static void setup() throws Exception { log.debug("Starting development server"); File appRootDir = new File("target/visualize-1.0.war"); DevAppServerFactory devAppServerFactory = new DevAppServerFactory(); devAppServer = devAppServerFactory.createDevAppServer(appRootDir, HOST, PORT); devAppServer.start(); }
However, during a call to createDevAppServer, I get a security exception:
java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.Thread.setContextClassLoader(Thread.java:1394) at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:366) at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
debugging security exceptions with -Djava.security.debug = access, I see:
access: access allowed (java.io.FilePermission /home/me/.m2/repository/com/google/appengine/appengine-tools-sdk/1.7.3/appengine-tools-sdk-1.7.3.jar read) access: access denied (java.security.SecurityPermission getPolicy) java.lang.Exception: Stack trace at java.lang.Thread.dumpStack(Thread.java:1249) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:364) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.security.Policy.getPolicy(Policy.java:133) at com.google.apphosting.utils.security.SecurityManagerInstaller.install(SecurityManagerInstaller.java:81) at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:152) at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:69) at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:53)
What am I doing wrong?
source share