java - class.getResource (".") 返回 null

标签 java web-services class getresource

我在 Web 服务客户端项目中使用 wsimport 来生成基于 wsdl 文件的工件类。我试图通过使用 wsdlLocation 属性在本地引用 wsdl 文件。生成的服务将尝试根据服务类所在的包的路径和 wsdlLocation 属性的值创建一个 URL。

问题是生成的服务类正在使用 class.getResource(".") 来获取当前目录(服务类所在的包/目录)的路径。如果应用程序打包在 jar 中(如我的情况),则此代码返回 null。我注意到 class.getResource("") 实际上会返回正确的路径,但更改生成的代码似乎是一个丑陋的解决方案。我想知道是否有某种方法可以设置类路径,以便前面的代码返回生成的服务类所在的包/目录的路径(如预期的那样)?

谢谢

最佳答案

您无法获得 jar 文件中目录的 url 的原因是您在创建 jar 文件时忘记启用“添加目录条目”选项。

如果您使用 eclipse 创建 jar 文件,只需启用“添加目录条目”选项即可。

如果您使用 jdk jar 命令,我认为该选项默认启用。

不要使用常规的 zip 创建器,例如 WinZip、7zip 或 WinRar,因为我认为它们没有此选项。

关于java - class.getResource (".") 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8398843/

相关文章:

java - 在应用程序中,我可以访问 JDBC 驱动程序(异常 java.lang.ClassNotFoundException : com. mysql.cj.jdbc.Driver)

java - PhoneGap 在 Android 和 iOS 上使用 java 类

php - 为什么我不能使用占位符从类中调用静态属性?

c++ - 尝试打印存储在 C++ 类型对象数组中的信息

java - kotlin 内部类无法访问外部的私有(private)方法?

java - 如何解密 IRC Bot 的河豚加密消息

c++ - C 和 C++ 中的 Web 服务

c# - Web 服务的空响应 (WSDL SOAP)

java - 错误插入元素(主键)

c# - 单例类可以是静态的吗?