一、 首先用.net发布一个Web Service
1、 开发环境
vs2008,iis
2、 开发
2.1、初始
新建->项目->ASP.NET Web 服务应用程序
命名 WebServiceExam
2.2、代码->生成dll
namespace WebServiceExam
{
[WebService(Namespace = "http://www.openuri.org/Rpc")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public string getName(String str)
{
String temp = "Web Service call of getName, return String is: " + str;
return temp;
}
}
}
2.3 发布
网站->默认网站->新建->虚拟目录,然后是:别名->目录->设置权限->完成。
二、用eclipse来调用Web Service
1、 开发环境
eclipse、axis,注意axis会对其它jar包有依赖关系,比如jaxrpc.jar
我的开发环境中嵌入了以下包:
axis.jar
axis-ant.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mailapi-1.3.jar
saaj.jar
wsdl4j-1.5.1.jar
2、 开发
package test;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class wstest {
/**
* @param args
*/
public static void main(String[] args) {
try {
String endpoint ="http://localhost/WebService/Service1.asmx";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://www.openuri.org/Rpc","getName"));//要访问的方法
call.addParameter(new QName("http://www.openuri.org/Rpc", "str"), XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING); //设置返回值类型
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.openuri.org/Rpc/getName");
Object[] params = new Object[] {"lh"};//string 自动转成 double
String str = (String)call.invoke(params);
System.out.println(str);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
3、 运行成功,显示结果
Web Service call of getName, return String is: lh
总结:
1、 [WebService(Namespace = "http://www.openuri.org/Rpc")]
这行代码是自定义的,java调用的时候要用到,保证一致即可
2、 参考网上的代码的时候,有两点要细心的注意的,一个是开发环境,另一个是要比较不同版本的区别
本文介绍如何使用.NET在VS2008环境下创建并发布WebService,同时演示了如何利用Eclipse及Axis库进行跨平台调用。文章详细展示了创建、发布WebService的过程,并提供了Eclipse端调用的具体实现代码。

205

被折叠的 条评论
为什么被折叠?



