一、既然存在访问规则,那么修改访问规则即可。打开项目的Build Path Configuration页面,打开报错的JAR包,选中Access rules条目,选择右侧的编辑按钮,添加一个访问规则即可。
二、网上的另外一种解决方案:Window - preference - Java - Compiler - Errors/Warnings界面的Deprecated and restricted API下。把Forbidden reference (access rules): 的规则由默认的Error改为Warning。
如我碰到的是不能访问o.e.j.http.ssl.SslContextFactory, 但是它是继承了jetty-util里的类,而jetty-util的access-rule没有导出这个包,添加:
org/eclipse/jetty/util/ssl/*
后来有看了下,原来的SslContextFactory用的是7.5.1的jetty-http里来的,升级到8.1.16后,它已被弃用,而manifest.xml里的import packages里还是导入的jetty-http-ssl而不是jetty-util-ssl,access rule就是根据这个来的,所以把代码改成使用jetty-util中的类而不是已经弃用的jetty-http中的类,修复import packages就好了.