2012-01-07 79 views
1

我的程序在本地桌面上正常工作,但是当我在域上部署它并运行相同的程序时,它显示以下异常。java.security.AccessControlException:在tomcat上访问被拒绝的异常

java.security.AccessControlException: access denied (java.net.SocketPermission www.abc.com:80 connect,resolve) 

at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 

at java.security.AccessController.checkPermission(AccessController.java:546) 

at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 

at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034) 

at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 

at sun.net.www.http.HttpClient.(HttpClient.java:233) 

at sun.net.www.http.HttpClient.New(HttpClient.java:306) 

at sun.net.www.http.HttpClient.New(HttpClient.java:323) 

at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:852) 

at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:793) 

at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:718) 

at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:896) 

at pnr.PnrServlet.processRequest(PnrServlet.java:46) 

at pnr.PnrServlet.doGet(PnrServlet.java:81) 

at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 

at java.lang.reflect.Method.invoke(Method.java:597) 

at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244) 

at java.security.AccessController.doPrivileged(Native Method) 

at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) 

at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276) 

at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) 

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283) 

at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56) 

at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) 

at java.security.AccessController.doPrivileged(Native Method) 

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185) 

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) 

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 

at java.lang.Thread.run(Thread.java:619) 

我的计划是与其他网站使用java.net包 和显示相关数据 我在Apache Tomcat上 运行此代码,请帮助我联系。

+0

这是abc.com:80正确的机器?这是否存在? – kosa 2012-01-07 13:18:09

+0

我在日志中只用abc.com替换了一些其他站点名称 – user1047873 2012-01-07 13:24:03

+0

这个异常非常明显 - “访问被拒绝(java.net.SocketPermission www.abc.com:80连接,解析)'。您正试图在没有特权的计算机上打开套接字80。你说你正在将这个应用程序部署到Tomcat?当你这样做的时候它已经在运行吗?还是你想直接在你的程序中打开一个套接字? – Perception 2012-01-07 13:24:20

回答

1

本地计算机上的Tomcat可能运行时未打开安全保护。在实际的服务器上,情况并非如此,安全管理器处于活动状态。它可以赋予你的应用程序,例如通过将以下到Tomcat安全策略文件所需SocketPermission特权:

grant codeBase "file:${catalina.base}/webapps/your_app_root/-" { 
    permission java.net.SocketPermission "www.abc.com:80", "connect"; 
}; 

这应该进入政策文件,这通常是conf/catalina.policy下,但您的安装可能会有所不同。您应该将file: URI替换为正确的URI。

请在此阅读有关Tomcat安全管理器的详细文档:http://tomcat.apache.org/tomcat-6.0-doc/security-manager-howto.html

+0

感谢它工作正常 – user1047873 2012-01-07 13:53:39

相关问题