java AXIS2动态调用WCF webservice
2013-02-05 12:02
459 查看
所需jar包:
另外还需要一个commons-discovery-0.2.jar这个包,作用:用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法。
调用WCF服务的时候,特别要注意参数的问题。需要传输的参数包括:服务wsdl地址,SOAP Action地址,方法名,方法变量名,方法参数值。
通过org.apache.axis.client.Call下面的setTargetEndpointAddress(new java.net.URL(endpoint));来设置wsdl地址,通过addParameter(new QName(namespaceURI,parameterName),org.apache.axis.Constants.XSD_STRING,ParameterMode.IN)来设置方法变量名,并说明这是一个传入参数,通过setReturnType(org.apache.axis.Constants.XSD_STRING)来设置方法返回类型,通过invoke(new java.lang.Object[] {parameterValue});动态调用方法,并传递参数值。
[b][b]代码如下:[/b][/b]
import java.net.MalformedURLException; import java.rmi.RemoteException; import java.util.HashMap; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException;
另外还需要一个commons-discovery-0.2.jar这个包,作用:用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法。
调用WCF服务的时候,特别要注意参数的问题。需要传输的参数包括:服务wsdl地址,SOAP Action地址,方法名,方法变量名,方法参数值。
通过org.apache.axis.client.Call下面的setTargetEndpointAddress(new java.net.URL(endpoint));来设置wsdl地址,通过addParameter(new QName(namespaceURI,parameterName),org.apache.axis.Constants.XSD_STRING,ParameterMode.IN)来设置方法变量名,并说明这是一个传入参数,通过setReturnType(org.apache.axis.Constants.XSD_STRING)来设置方法返回类型,通过invoke(new java.lang.Object[] {parameterValue});动态调用方法,并传递参数值。
[b][b]代码如下:[/b][/b]
/** * axis2 client动态调用WCF webservice * @param endpoint wsdl地址,如http://172.16.5.21/WcfService2/Service1.svc?wsdl * @param SOAPActionURI 调用的方法action地址如"wsdl:input wsaw:Action="http://tempuri.org/IService1/GetData1" message="tns:IService1_GetData1_InputMessage" * @param namespaceURI命名空间如targetNamespace="http://tempuri.org/" * @param methodName方法名如wsdl:operation name="GetData1" * @param parameterName方法变量名 * @param parameterValue方法变量值 * @return返回值 * @throws ServiceException * @throws MalformedURLException * @throws RemoteException */ public static String invokeWCF(String endpoint,String SOAPActionURI,String namespaceURI,String methodName,String parameterName,String parameterValue) throws ServiceException, MalformedURLException, RemoteException { List<HashMap<String, Object>> mList = new ArrayList<HashMap<String,Object>>(); Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.addParameter(new QName(namespaceURI,parameterName),org.apache.axis.Constants.XSD_STRING,ParameterMode.IN); call.setReturnType(org.apache.axis.Constants.XSD_STRING); call.setUseSOAPAction(true); call.setSOAPActionURI(SOAPActionURI); call.setOperationName(new QName(namespaceURI, methodName)); String remsg=(String) call.invoke(new java.lang.Object[] {parameterValue}); return remsg; }
相关文章推荐
- Delphi动态调用Java的WebService —— 基于“Axis2发布WebService例子(HelloWorld)”
- Java动态调用webService,axis2动态调用webService
- PDA动态调用JAVA提供的WebService
- Java使用axis2调用wsdl形式的webservice
- Axis2 webservice 之使用java调用webservice
- webservice之axis2客户端调用(maven方式创建java项目)
- java 调用axis2 webservice
- Java使用Axis2调用NET编写的WCFService问题
- 利用Axis2开发WebService(3)---用Java实现调用WebService的客户端程序
- Java调用WebService(axis2)两种方法
- 动态调用webservice及WCF服务
- JAVA动态调用C#WebService客户端
- java 调用axis2 webservice示例
- java动态调用webservice服务端
- Silverlight动态调用WEBSERVICE,WCF方法
- Axis2 java调用.net webservice接口的问题(郑州就维)
- java动态调用webservice
- JAVA 调用Axis2 code generator 生成的webservice
- axis2 发布 webservice 和 java调用webservice
- Java动态调用WebService方法