【问题标题】:From where does the source jar load in Axis webservice?Axis webservice 中的源 jar 从哪里加载?
【发布时间】:2016-05-12 07:38:59
【问题描述】:

所以我在 aar 文件中有这个基于 axis2 的 web 服务,我用 ant 自己构建了它。当我构建它时,我指定了 jar 文件的位置。特别是“rt.jar”,我将它放在我的 lib 文件夹中并使用 javac 构建我的类。当我从我的 lib 文件夹中删除 rt.jar 时,javac 没有构建,所以我知道使用了 jar 文件。

问题是当我调试我的 web 服务并尝试使用下面的代码了解我的 WSBindingProvider 类从哪里加载时,它说是从 c:/program files/java/jre1.8/...不要在我的项目中的任何地方使用 jre(不是 jdk)库。

谁能解释在构建类文件中使用某些类时它是如何工作的? Axis 是否以某种方式从 jre 获取它?或者也许是tomcat?

Class klass = WSBindingProvider.class;
URL location = klass.getResource('/' + klass.getName().replace('.', '/') + ".class");

【问题讨论】:

    标签: java web-services tomcat classpath axis


    【解决方案1】:

    rt.jar 中的类始终被 JRE 和 javac 使用。如果您的代码只有在将rt.jar 添加到类路径时才能编译,那么这意味着有问题的rt.jar 来自与javac 不同的Java 版本。

    【讨论】:

    • 是的,我发现覆盖 rt.jar 位置并不容易,它总是从 jre 主位置加载。谢谢你的回答。
    猜你喜欢
    • 2016-07-30
    • 2012-05-15
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2021-07-17
    相关资源
    最近更新 更多