Axis远程调用WebService接口
来源:互联网 发布:程序员能找到女朋友吗 编辑:程序博客网 时间:2024/05/06 19:33
前提:需要调用webservice接口时,获取到wsdl地址,并清楚里面的相关内容。
1 引入相关jar包:axis相关jar包下载
2 java相关代码,和网上提供的大致相同:
package com.demo.service;import java.rmi.RemoteException;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class MyClient {public static void main(String[] args) {try {// 直接引用远程的wsdl文件地址,如http://www.baidu.com/myService/serviceTestString endpoint = "";Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(endpoint);call.setOperationName("sendInfo");// WSDL里面描述的接口名称call.addParameter("in0",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);// 接口的参数call.addParameter("in1",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);// 接口的参数call.addParameter("in2",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);// 接口的参数call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型String result = (String) call.invoke(new Object[] { "", "", "" });// 必须和addParameter方法中设置的参数类型一致// 给方法传递参数,并且调用方法System.out.println("result is " + result);} catch (ServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}================================================================================================================================
问题1:实际在部署开发的过程中,endpoint一开始填写的是wsdl地址,也就是类似于http://www.baidu.com/myService/serviceTest?wsdl这样的地址。而运行时会报如下错误:
AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: Bad envelope tag: definitions faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Bad envelope tag: definitionsat org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:71)at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)at org.apache.axis.client.Call.invokeEngine(Call.java:2784)at org.apache.axis.client.Call.invoke(Call.java:2767)at org.apache.axis.client.Call.invoke(Call.java:2443)at org.apache.axis.client.Call.invoke(Call.java:2366)at org.apache.axis.client.Call.invoke(Call.java:1812)at com.htc.ode.service.ServiceTest.main(ServiceTest.java:34)org.xml.sax.SAXException: Bad envelope tag: definitionsat org.apache.axis.AxisFault.makeFault(AxisFault.java:101)at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)at org.apache.axis.client.Call.invokeEngine(Call.java:2784)at org.apache.axis.client.Call.invoke(Call.java:2767)at org.apache.axis.client.Call.invoke(Call.java:2443)at org.apache.axis.client.Call.invoke(Call.java:2366)at org.apache.axis.client.Call.invoke(Call.java:1812)at com.htc.ode.service.ServiceTest.main(ServiceTest.java:34)Caused by: org.xml.sax.SAXException: Bad envelope tag: definitionsat org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:71)at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)... 9 more
而将http://www.baidu.com/myService/serviceTest?wsdl修改成http://www.baidu.com/myService/serviceTest后,也就是去除"?wsdl"则可正常访问。
0 0
- Axis远程调用WebService接口
- Java利用Axis远程调用WebService接口
- axis调用webservice接口
- axis调用webservice接口
- 利用axis调用webservice接口
- 使用axis调用webservice接口
- java:浅谈axis调用webservice接口
- axis WebService之动态调用接口
- java用axis方式调用webservice接口
- java使用axis调用webservice接口
- 用axis在eclipse中new出webService client生成客户端,调用远程webservice接口的方法
- axis2 远程调用webservice接口
- Axis接收远程调用c# webservice返回的数组
- AXIS2远程调用WebService示例(Eclipse+AXIS)
- AXIS2远程调用WebService示例(Eclipse+AXIS)
- AXIS2远程调用WebService示例(Eclipse+AXIS)
- 客户端axis调用cxf服务端webservice接口问题
- java调用C# webservice接口使用axis报错
- hdu 2010 水仙花数
- 黑马程序员----集合框架中的ArrayList和HashSet
- 黑马66期android学习笔记19_线性布局的特性和20_权重案例
- 对于大型系统PHP为什么令人不爽
- ORA-28001: the password has expired解决方法
- Axis远程调用WebService接口
- android weight 剩余空间使用
- sql基本语句
- Kafka性能测试与详解
- git Clone 某个分支或所有分支
- LeetCode 之 Valid Palindrome(字符串)
- SQL优化技巧
- Android内部优化(二)
- 'cocos2d::LabelTTF::getContentSize': 被声明为已否决