我在 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/