Idea创建web service

1、新建Web Service项目,Version选择“Apache Axis”;

2、Tools->WebServices->Generate Wsdl From  Java Code,生成wsdl文件。

一开始,生成报错:java.lang.IllegalStateException: Error looking for paramter names in bytecode: unexpected bytes in file

后来在Project Structure中修改jdk版本为1.8,原来为默认的1.11。

3、在Project structure中配置Artifacts,在WEB-INF的lib中添加JAX-WS-Apache Axis,Idea会自动提示需要fix,点击fix自动添加。

4、配置Tomcat Server,启动后在根目录加/services访问即可。

5、编写客户端程序测试报错: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.

解决方法:修改server-config.wsdd文件中的

部分,将style="document" 删除即可。

原理网上搜结果是:有style="document"和没有style="document"的参数传输方式是不同,document传递两个以上的参数会出问题。

后,新建WebService Client工程,执行报错,No such method,找不到服务器端的服务,最后发现是在生成的HelloWorldSoapBindingStub文件中,设置了

setStyle(org.apache.axis.constants.Style.DOCUMENT);

把这行注释掉就可以了。

你可能感兴趣的:(Java学习)