4

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

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

谢谢

4

3 回答 3

2

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

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

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

不要使用常规的 zip 创建程序,例如 WinZip、7zip 或 WinRar,因为我不相信有这个选项。

于 2013-03-11T16:20:06.703 回答
0

您只需使用正斜杠“/”代替句点或点“。” . 这是早期版本中的错误,但现在已解决。检查以下链接以了解该错误。如果使用正斜杠无济于事,请告诉我。 漏洞

于 2013-07-30T09:50:03.160 回答
0

我建议您在QName某处使用并将其作为您的财产,它让您高枕无忧,因为您可以选择将 wsdl 更改为指向任何位置,以防您不想要基于默认相对路径的方法。

恕我直言,我看不出有任何理由不更改生成的代码,尽管它会导致每次重新生成代码时都要进行更改的痛苦。

于 2011-12-06T11:22:18.163 回答