wsimport不生成与wsgen相同的文件

时间:2014-09-25 20:13:07

标签: java web-services wsdl

我在Windows 7机器上使用java 6。 我从一个java源文件开始,并在其上运行wsgen.bat以生成wsdl和工件。 生成的源代码/类中的包名称位于xxx.yyy.jaxws。

作为一个完整性检查,然后我在wsgen.bat生成的wsdl文件上运行了wsimport.bat。 神秘的是,生成的源代码/类中的包名称是xxx.yyy。

也就是说,wsimport不会在相同的包中生成完全相同的源/类文件,而是删除包名称中的.jaxws文件夹。 此外,wsgen生成的源不保留XXXService.java或.class文件,而wsimport保留。 有没有人见过这个?这对我来说似乎是个错误。

我正在使用Jax-ws 2.2.5,07 / 29/2011。 这是一个有点旧的版本,所以也许这不再发生或已经修复。

我不得不说我对wsgen和wsimport非常困惑。 我在网上看到的一切都说wsgen从java文件生成工件, 和wsimport从wsdl文件生成工件。基本上,他们做的确切 同样的事情,只是从不同的起点。

我在现实中所看到的却完全不同。 wsgen使用正确的包生成类文件,尽管它没有生成XXXService.class。 wsimport使用单个包生成类文件,完全忽略了为我的Web服务创建的java文件的包结构。 wsimport可以创建一个客户端jar文件,这是wsgen无法做到的。

所以看来如果我想从java客户端访问我的Web服务,我需要使用wsimport来创建客户端jar文件,然后我需要手动添加一个MANIFEST.MF文件(否则,java编译器)无法识别生成的客户端jar文件中的类 - 网上有很多关于此的帖子。

0 个答案:

没有答案