在论坛上刚刚发布了java调用java中的webservice
现在讲讲.net平台调用java中的webservice
webservice和调用平台已经打包上次到附件中
.net平台下显得更简单 直接在项目中添加应用方式
工具用的是vs2010
这是调用代码 两种形式 web引用和服务引用
web引用
服务引用效果 在点击服务引用 高级按钮的添加web引用
添加完毕之后
这是调用代码 两种形式 web引用和服务引用
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { WebReference.DemoService webservice = new WebReference.DemoService(); label1.Text = webservice.isflag(2); ServiceReference1.DemoClient d = new ServiceReference1.DemoClient(); label2.Text = d.isflag(123); } } }
运行效果
如果是java调用 .net webservice
/**
* 调用.net 的
* @param rydm
* @param iyear
* @param imonth
* @param opcoder
* @return
* @throws ServiceException
* @throws MalformedURLException
* @throws RemoteException
*/
public static String webServiceJxGz(String rydm,String iyear,String imonth,String opcoder)
throws ServiceException, MalformedURLException, RemoteException{
String endpoint = "http://127.0.0.1:801/webjxxt/Service.asmx";//请求地址
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setSOAPActionURI("http://tempuri.org/");
call.setUseSOAPAction(true);
String namespace="http://tempuri.org/";
call.setOperationName(new QName(namespace, "WebJxGz"));
//参数名称 及参数类型
call.addParameter(new QName(namespace,"srydm"),XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter(new QName(namespace,"iyear"),XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(namespace,"imonth"),XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(namespace,"opcoder"),XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
//参数值
String s=(String)call.invoke(new Object[] { rydm,iyear,imonth,opcoder});
return s;
}