wsdl生成webserice服务端

xiaoxiao2022-10-03  160

1.新建web工程aaa 2.拷贝axis的jar包到lib 3.在WebRoot下新建文件夹doc,将GetPassword.wsdl拷贝到doc 4.在doc中新建bat文件WSDL2Java.bat 修改部分路径参数,然后执行任务,生成服务端 set Axis_Lib=E:\newspace\aaa\WebRoot\WEB-INF\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=E:\newspace\aaa\src set Package=com.sitech.aaa.server %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% --server-side GetPassword.wsdl 生成的类有: GetPassword_PortType.java GetPasswordService.java GetPasswordServiceApplyRequest.java(自定义输入类) GetPasswordServiceApplyResponse.java(自定义输出类) GetPasswordServiceLocator.java GetPasswordSoapBindingImpl.java(服务类) GetPasswordSoapBindingStub.java 还有文件 deploy.wsdd undeploy.wsdd 5.拷贝一份axis的web.xml,配置相关的Listener和Servlet 6.新建一份server-config.xml,从deploy.wsdd拷贝相关的内容<service></service>, 在使用自动创建的时候出现问题没有生成文件,网上说可以手动创建 7.就可以部署到tomcat下了,启动tomcat,打开http://127.0.0.1:8080/aaa/services/GetPassword?wsdl wsdl与原来创建的wsdl是一样的。 8.编写客户短信代码Client调用服务,报错 - Exception: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.sitech.aaa.client.Client.main(Client.java:39) AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.sitech.aaa.client.Client.main(Client.java:39) {http://xml.apache.org/axis/}hostname:c63f8f997bb941b org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at org.apache.axis.client.Call.invoke(Call.java:2470) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at com.sitech.aaa.client.Client.main(Client.java:39) Caused by: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) ... 3 more 后来与axis中的userguide进行笔记哦啊发现是客户端代码编写的有问题,服务端也少了配置<beanMapping> 修改客户端后,能够正常调用。 代码如下: 受附件大小限制,jar包已经截图 相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-4977990.html

最新回复(0)