【问题标题】:class.getResource(".") returns null in Tomcat Server but works fine on standalone Java programclass.getResource(".") 在 Tomcat 服务器中返回 null,但在独立 Java 程序上工作正常
【发布时间】:2014-02-07 06:16:24
【问题描述】:

我正在尝试在我的应用程序中获取 SharePoint Web 服务类的 java.net.URL。 当我运行独立的 Java 程序以使用 Java Web 服务连接到 SharePoint 时,工作正常。 这是我的 Web 服务生成的 Java 类之一(可以独立运行):

static {
    try {
        URL baseUrl = com.microsoft.sharepoint.webservices.Lists.class.getResource(".");
        System.out.println("baseUrl::"+baseUrl);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}

输出是

 baseUrl::file:/C:/folder1/folder2/target/classes/com/microsoft/sharepoint/webservices/

从Tomcat服务器调用相同的代码,输出为::

baseUrl::null

我尝试使用谷歌搜索并在相对路径上搜索:

MyTestClass.class.getResource("/com/microsoft/sharepoint/webservices");

独立 prg 工作正常,但在服务器上,协议是“捆绑”,而协议是独立的“文件”,我不确定有什么区别以及它如何影响。 非常感谢任何帮助。

【问题讨论】:

  • 完全没有理由这样做。资源不是文件。它更有可能在 JAR 文件中而不是在文件系统中。
  • 你试过com.microsoft.sharepoint.webservices.Lists.class.getClassloader().getResource(".")吗?
  • 是的,尝试使用 com.microsoft.sharepoint.webservices.Lists.class.getClassloader().getResource("‌​.") 没有用,在 tomcat 上运行时仍然返回 null :(

标签: java web-services tomcat


【解决方案1】:

开箱即用,问题在于类加载器而不是选择类,此 URL 对问题有更深入的了解并进行了修复:

java class using jaxb api failing in jira with : Provider com.sun.xml.bind.v2.ContextFactory not found

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 2020-03-27
    • 1970-01-01
    • 2016-03-08
    • 2012-04-02
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多