我试图在Java5上编译由IBM的WSDL2Java创建的Java1.4代码,而不重新创建存根,并在Eclipse中看到了这个错误。我的假设是,只要运行时jar可用(它们可用),生成的存根就应该编译。
访问限制:由于对所需库C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar的限制,QName类型不可访问
完整类名为javax.xml.namespace.QName
这里到底发生了什么?这是我试图用香肠重构猪的例子吗?我最好重新创建存根吗?
我试图在Java5上编译由IBM的WSDL2Java创建的Java1.4代码,而不重新创建存根,并在Eclipse中看到了这个错误。我的假设是,只要运行时jar可用(它们可用),生成的存根就应该编译。
访问限制:由于对所需库C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar的限制,QName类型不可访问
完整类名为javax.xml.namespace.QName
这里到底发生了什么?这是我试图用香肠重构猪的例子吗?我最好重新创建存根吗?
当前回答
在我的案例中,生成路径JRE和执行环境中安装的JRE之间不匹配。我进入了项目>财产>Java编译器。底部有一条警告信息。
我单击链接“Installed JRE”、“Execution environment”、“Java build path”,将JDK版本更改为1.7,警告消失。
其他回答
除了Nels Beckman的解决方案,我还有以下建议:
在ConfigureBuild Path下,我必须重新排列order和Export下条目的顺序。
此外,作为一名EclipsePDE开发人员,我需要重新排列MANIFEST.MF中依赖项的顺序,将有问题的包添加到列表的第一位。
使用这些刻度盘,同时在其间运行Project>Clean,我能够解决这些警告。
通过构建路径添加正确的JRE系统是解决方案,但您的eclipse可能仍然存在错误。要解决此问题,请转到Java Build路径-->Order and Export,然后将JRE系统库移到顶部。这解决了我的问题。
还有另一种解决方案也有效。
转到项目财产中的“生成路径”设置。删除JRE系统库将其添加回;选择“添加库”并选择JRE系统库。默认值对我有效。
这是因为在不同的jar文件中有多个类。删除和重新添加JRE库将首先选择正确的类。如果您想要一个基本的解决方案,请确保排除具有相同类的jar文件。
对我来说,我有三个不同的jar中的javax.xml.soap.SOAPPart:axis-saaj-1.4.jar、saaj-api-1.3.jar和rt.jar
抱歉更新旧POST。我得到了报告的问题,并按照如下所述解决了它。
假设您使用的是Eclipse+m2e maven插件,如果出现此访问限制错误,请右键单击出现错误的项目/模块-->财产-->构建路径-->库-->将JDK/JRE替换为在Eclipse工作区中使用的项目/模块。
我遵循了上述步骤,问题得到了解决。
在我的案例中,生成路径JRE和执行环境中安装的JRE之间不匹配。我进入了项目>财产>Java编译器。底部有一条警告信息。
我单击链接“Installed JRE”、“Execution environment”、“Java build path”,将JDK版本更改为1.7,警告消失。