sal*_*sal 813 java eclipse wsdl wsdl2java stub
我正在尝试编译由IBM的WSDL2Java在Java5上创建的Java 1.4代码,而无需重新创建存根并在Eclipse中看到此错误.我假设创建的存根应该只要运行时jar可用就可以编译(它们是).
Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar
完整的类名是 javax.xml.namespace.QName
到底发生了什么?
这是我试图用香肠重构一头猪的情况吗?我最好重新创建存根吗?
Nel*_*man 1866
还有另一种解决方案也有效.
这是有效的,因为您在不同的jar文件中有多个类.删除和重新添加JRE库将使正确的类成为第一.如果您想要一个基本的解决方案,请确保使用相同的类排除jar文件.
对我来说,我有:javax.xml.soap.SOAPPart在三个不同的罐子:axis-saaj-1.4.jar,saaj-api-1.3.jar和rt.jar
小智 119
http://www.digizol.com/2008/09/eclipse-access-restriction-on-library.html最适合我.
在Windows上: Windows - >首选项 - > Java - >编译器 - >错误/警告 - >不推荐使用和受限制的API - >禁止引用(访问规则): - >更改为警告
在Mac OS X/Linux上: Eclipse - >首选项 - > Java - >编译器 - >错误/警告 - >不推荐使用和受限制的API - >禁止引用(访问规则): - >更改为警告
小智 67
我遇到了同样的问题.我在网站上找到了答案:http://www.17ext.com.
首先,删除JRE系统库.然后,再次导入JRE系统库.
我不知道为什么.但是它解决了我的问题,希望它可以帮到你.
Pet*_*rey 34
我的猜测是,您正在尝试将Java 5附带的标准类替换为您拥有的库中的一个.
根据许可协议的条款,这是不允许的,但是直到Java 5,AFAIK才会强制执行.
我以前用QName看过这个,我通过从我的jar中删除类来"修复"它.
编辑 http://www.manpagez.com/man/1/java/备注选项"-Xbootclasspath:"
"为了覆盖rt.jar中的类而不能部署使用此选项的应用程序,因为这样做会违反Java 2 Runtime Environment二进制代码许可证."
该http://www.idt.mdh.se/rc/sumo/aJile/Uppackat/jre/LICENSE
"Java技术限制.您可以不修改Java平台接口("JPI",标识为"java"包中包含的类或"java"包的任何子包),通过在JPI中创建其他类或以其他方式导致添加或修改JPI中的类.如果您创建了一个额外的类和相关的API,它们(i)扩展了Java平台的功能,并且(ii)暴露给第三方软件开发人员为了开发调用此类附加API的附加软件,您必须迅速公布所有开发人员免费使用的API的准确规范.您不得创建或授权您的被许可人创建其他类,接口或子包,以任何方式标识为"java","javax","sun"或Sun在任何命名惯例中指定的类似约定."
Duf*_*ffJ 25
我也得到了这个错误,但我的项目是使用Maven和tycho编译器(它是一组OSGi插件)在命令行上构建的.在大量筛选具有相同问题的人但是在Eclipse中而不是在命令行上修复它之后,我在Tycho开发人员论坛上发现了一条消息来回答我的问题,使用配置pom.xml忽略编译器关于访问限制的警告:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<compilerArgument>-warn:+discouraged,forbidden</compilerArgument>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
更多信息可以在Tycho FAQ中找到.这让我花了很多时间来解决这个问题,所以我想通过发布这个答案,我会帮助其他试图从命令行修复这些访问限制错误的人.
小智 13
Windows -> Preferences -> Java Compiler除了Nels Beckman的解决方案,我还有以下提示:
在配置构建路径下,我不得不重新排列订单和导出下的条目顺序.
另外,作为Eclipse PDE开发人员,我需要重新排列我的依赖项的顺序,MANIFEST.MF在列表中首先添加有问题的包.
使用这些拨号,以及运行项目>清洁之间,我能够解决这些警告.
对我而言,我如何解决它:
在图书馆下
注意:确保在Eclipse/Preferences(不是项目)/ Java/Installed JRE中,jdk指向JDK文件夹而不是JRE C:\ Program Files\Java\jdk1.8.0_74
很抱歉更新旧的POST.我得到了报告的问题,我解决了它,如下所述.
假设您正在使用Eclipse + m2e maven插件,如果您遇到此访问限制错误,请右键单击您有错误的项目/模块 - >属性 - >构建路径 - >库 - >替换JDK/JRE到eclipse工作区中使用的那个.
我按照上述步骤解决了问题.
在您确定应该能够访问给定类的情况下,这可能意味着您向项目添加了几个包含具有相同名称(或路径)但内容不同的类的jar并且它们相互遮蔽(通常是旧的自定义) build jar包含内置旧版本的第三方库).
例如,当你添加一个jar实现:
a.b.c.d1
a.b.c.d2
Run Code Online (Sandbox Code Playgroud)
但也是仅实施的旧版本:
a.b.c.d1
(d2 is missing altogether or has restricted access)
Run Code Online (Sandbox Code Playgroud)
一切都在代码编辑器中正常工作,但在编译过程中如果"旧"库掩盖了新的那个 - d2突然变成"缺失或无法访问",即使它在那里.
解决方案是检查编译时库的顺序,并确保具有正确实现的库先行.
转到项目属性中的 Java 构建路径。删除现有的JRE系统库然后再次添加即添加库-->JRE Lib--选择jre-->完成。最后选择order 和 export选项卡选择 JRE Lib 并移至顶部。就是这样。
| 归档时间: |
|
| 查看次数: |
621876 次 |
| 最近记录: |