Java wsimport未生成与wsgen相同的文件

Java wsimport未生成与wsgen相同的文件,java,web-services,wsdl,Java,Web Services,Wsdl,我在Windows7上使用Java6。 我从一个java源文件开始,在其上运行wsgen.bat以生成wsdl和工件。 生成的源代码/类中的包名位于xxx.yyy.jaxws中 作为一项健全性检查,我随后对wsgen.bat生成的wsdl文件运行了wsimport.bat。 奇怪的是,生成的源代码/类中的包名在xxx.yyy中 也就是说,wsimport没有在相同的包中生成完全相同的源/类文件,而是在包名中删除.jaxws文件夹。 此外,wsgen生成的源代码不保留XXXService.java

我在Windows7上使用Java6。 我从一个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.5201107/29。 这是一个有点旧的版本,所以可能不会再发生这种情况,或者它已经被修复

我必须说,我对wsgen和wsimport完全感到困惑。 我在网上读到的所有东西都说wsgen从java文件生成工件, wsimport从wsdl文件生成工件。从本质上说,他们做的是完全一样的 同样的事情,只是从不同的出发点

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


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

您看到wsdl文件中的模式了吗?这是什么意思?