Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.security.AccessControlException:拒绝访问(“java.net.SocketPermission”localhost:10648“侦听、解析”)_Java_Coldfusion_Phantomjs_Coldfusion 10 - Fatal编程技术网

java.security.AccessControlException:拒绝访问(“java.net.SocketPermission”localhost:10648“侦听、解析”)

java.security.AccessControlException:拒绝访问(“java.net.SocketPermission”localhost:10648“侦听、解析”),java,coldfusion,phantomjs,coldfusion-10,Java,Coldfusion,Phantomjs,Coldfusion 10,我正在从CF调用一个jar文件。在CF内部,我成功地创建了一个java类对象。当我要调用我的函数时,它会生成以下错误: java.security.AccessControlException:拒绝访问 (“java.net.SocketPermission”“localhost:10648”“侦听,解析”) 我如何克服这个例外?我已经在CF10服务器中部署了我们的代码。以下是我的login.cfm文件代码: <cfsetting requesttimeout="1000000">

我正在从CF调用一个jar文件。在CF内部,我成功地创建了一个java类对象。当我要调用我的函数时,它会生成以下错误:

java.security.AccessControlException:拒绝访问 (“java.net.SocketPermission”“localhost:10648”“侦听,解析”)

我如何克服这个例外?我已经在CF10服务器中部署了我们的代码。以下是我的login.cfm文件代码:

<cfsetting requesttimeout="1000000"> 

<!---Setting phantomJS path start--->
<cfset phantompath = #ExpandPath("./")# & "phantomjs\phantomjs.exe">    
<cfoutput>#phantompath#</cfoutput>

<!---Setting phantomJS path ends--->
<cfset sessionCookies="">

<!---Script for setting JAR file and creating java class object--->
<cfscript>
    paths = arrayNew(1);
    paths[1] = expandPath("CFDevshop\lib\Counsel_Cookies_Phantom.jar");
    writeDump(paths);
    loader = createObject("component", "javaloader.JavaLoader").init(paths);
    writedump(loader);
    classObject = loader.create("counsel_cookies.Counsel_Cookies").init();
    writedump(classObject);

    try{
        sessiondata=classObject.getSessionCookies  ("XXX","XXX","https://paser.login.csologin/login.jsf","phantomjs.exe");
    } 
    catch(Any e) { 
        WriteOutput("<p>An Expression exception was thrown.</p>");
        WriteOutput("<p>#e.Message#</p>");
    }
    writedump(sessiondata);                 
</cfscript>

#幻影路径#
路径=arrayNew(1);
路径[1]=expandPath(“CFDevshop\lib\consult\u Cookies\u Phantom.jar”);
writeDump(路径);
loader=createObject(“组件”、“javaloader.javaloader”).init(路径);
writedump(加载器);
classObject=loader.create(“council_cookies.council_cookies”).init();
writedump(类对象);
试一试{
sessiondata=classObject.getSessionCookies(“XXX”、“XXX”、“XXX”https://paser.login.csologin/login.jsf“,”phantomjs.exe“);
} 
捕获(任何e){
WriteOutput(“引发了表达式异常。

”; 写输出(“”e.Message“

”; } 书面文件(sessiondata);
以下是我的java代码:

public String getSessionCookies(String user, String pass,String loginUrl,String phantomPath) {
         StringBuilder builder=new StringBuilder();        
    try{            

        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(caps);
        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);

        Set<org.openqa.selenium.Cookie> allCookies=driver.manage().getCookies();
        builder.append(" : Thakre2");
        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()));
        }           

    } catch(Exception e){
        writeFile(e.toString(),logfilepath);
    }

    return builder.toString();
}
公共字符串getSessionOkies(字符串用户、字符串传递、字符串登录、字符串幻影路径){
StringBuilder=新的StringBuilder();
试试{
DesiredCapabilities=新DesiredCapabilities();
setJavascriptEnabled(true);//实际上不需要:默认情况下启用JS
setCapability(PhantomJSDriverService.PHANTOMJS_可执行路径_属性,phantomPath);
驱动程序=新的幻影驱动程序(caps);
获取驱动程序(loginUrl);
System.out.println(driver.getTitle());
driver.findElement(By.id(“login:loginName”)).sendKeys(用户);
driver.findElement(By.id(“登录:密码”)).sendKeys(pass);
waitForJQueryProcessing(驱动程序,5);
findElement(By.xpath(“/html/body/div[3]/div/div[1]/div[1]/div[15]/div[2]/form/div[2]/button[1]”);
睡眠(10000);
设置allCookies=driver.manage().getCookies();
建筑商。追加(“:Thakre2”);
for(org.openqa.selenium.Cookie loadedCookie:allCookies){
append(String.format(“%s->%s,”,loadedCookie.getName(),loadedCookie.getValue());
//System.out.println(String.format(“%s->%s,”,loadedCookie.getName(),loadedCookie.getValue());
}           
}捕获(例外e){
writeFile(例如toString(),logfilepath);
}
返回builder.toString();
}
请提供您的建议。如何解决此异常?

我猜这是权限问题。编辑client.policy或server.policy以授予读写权限


更多

到底是哪一行抛出了错误?请发布完整的错误消息和完整的堆栈跟踪。就像我说的,看起来你并没有发布生成你所描述的错误的实际代码。。。例如,您的java方法需要六(6)个,但您的CF代码只传递了五(5)个,因此您应该得到一个“MethodNotFound错误”。除非在调用之前发生错误。但我们需要看看你的实际代码和完整的错误才能弄清楚。。。当您直接在java中测试时,上面的方法是否有效?@Leigh:是的,上面的java代码在java中非常有效。实际上,我在java代码中使用了phantomjs。它从java代码中执行phantomjs.exe,并将结果返回到CF文件。@leigh:当我从本地系统运行此代码时,它的工作非常好。但当我把这段代码放在CF 10服务器上时,它显示了上面的异常:java.security.AccessControlException:access denied(“java.net.SocketPermission”“localhost:10648”“listen,resolve”)。您没有发布完整的错误消息和跟踪,所以我只能猜测。然而,就像Adam提到的,它可能是权限。你用谷歌搜索错误信息的第一行了吗?它找到了很多关于它的参考资料。另请参见JDK7和