【发布时间】:2026-01-29 09:10:01
【问题描述】:
当我在服务器中运行 java 代码时,它会显示以下异常:
java.security.AccessControlException: 访问被拒绝 ("java.net.SocketPermission" "localhost:15990" "listen,resolve")
这是我的java代码:
public String getSessionCookies(String user, String pass,String loginUrl,String phantomPath) {
StringBuilder builder=new StringBuilder();
try{
PhantomJSDriverService service = new PhantomJSDriverService.Builder().usingAnyFreePort().usingPhantomJSExecutable(new File(phantomPath)).build();
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);// not really needed: JS enabled by default
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,phantomPath);
driver = new PhantomJSDriver(service,DesiredCapabilities.phantomjs());
driver.get(loginUrl);
System.out.println(driver.getTitle());
driver.findElement(By.id("login:loginName")).sendKeys(user);
driver.findElement(By.id("login:password")).sendKeys(pass);
waitForJQueryProcessing(driver, 5);
driver.findElement(By.xpath("/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/div[2]/button[1]")).click();
Thread.sleep(10000);
driver.get("https://ecf.ca2.uscourts.gov/");
Thread.sleep(10000);
Set<org.openqa.selenium.Cookie> allCookies=driver.manage().getCookies();
for ( org.openqa.selenium.Cookie loadedCookie : allCookies) {
builder.append(String.format("%s->%s, ", loadedCookie.getName(),loadedCookie.getValue()));
//System.out.println(String.format("%s->%s, ", loadedCookie.getName(),loadedCookie.getValue()));
}
driver.close();
}catch(Exception e){
System.out.println(e.getStackTrace());
writeFile(e.toString(),phantomPath);
}
return builder.toString();
}
以上代码在本地系统中完美运行,但是当我必须调用服务器时,它会产生上述异常。
请提供您的建议。
谢谢
【问题讨论】:
-
@Surya:如何解决这个问题?
-
@Surya:我检查了我的本地系统 java.policy 是否已经可用并且我的代码在本地系统中运行良好。如何在服务器上运行?
标签: java selenium selenium-webdriver phantomjs