自制龙门定角磨刀器:java调用.net webservice1
来源:百度文库 编辑:九乡新闻网 时间:2024/10/06 16:41:50
前几日研究Java调用DotNet WebService,找了好多资料竟然没有好用的.将2日的艰辛拿出来分享,希望对朋友们有帮助。 .Net开发环境: VS DotNet 2005Java开发环境:Eclipse3.1+JDK1.6+Axis1.4+mail.jar+ activation.jar第一部分 服务器端.Net WebService开发 文件-〉新建-〉网站,选择Asp.net Web服务,建立WebService服务using System;using System.Web;using System.Web.Services;using System.Web.Services.Protocols; [WebService(Namespace = "http://www.my.com/Rpc")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]public class Service : System.Web.Services.WebService{ public Service () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld(string name) { return "Hello World" + name ; } }注意:[WebService(Namespace = "http://www.my.com/Rpc")]http://www.my.com/Rpc根据您的需要自己定义,要写清楚,Java调用时会使用。 第二部分 客户端Java调用.Net WebService通过Eclipse新建一个Java Project。Project->Properties下的Java Build Path引入Axis1.4\Lib中Jar文件以及mail.jar,activation.jar(如果你本机没有这两个jar就到网上下载一下)。
import org.apache.axis.client.Call;import org.apache.axis.client.Service;import javax.xml.namespace.QName;import java.lang.Integer; public class AxisTest { public static void main(String[] args){ try { String varname="haha"; String endpoint="http://localhost/WebServiceTest/Service.asmx"; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("http://www.my.com/Rpc","HelloWorld")); call.addParameter(new QName("http://www.my.com/Rpc","name"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); call.setUseSOAPAction(true); call.setSOAPActionURI("http://www.my.com/Rpc/HelloWorld"); String output=(String)call.invoke(new Object[]{varname}); System.out.println( "result is " + output.toString() + "."); } catch (Exception e) {System.err.println(e.toString());} } }Run(Ctrl+F11),大功告成。 开发过程中遇到的困难:1, call.setSOAPActionURI("http://www.my.com/Rpc/HelloWorld")写法。HelloWorld是DotNet2005开发的WebService的调用接口。如果不写清楚,总是返回未知的SoapAction头错误。通过网上的资料你也找不到原因。2, call.addParameter(new QName("http://www.my.com/Rpc","name"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN)中name的写法。Name是DotNet2005开发的WebService接口中的输入参数名。有好多朋友都问为什么接口调用成功了,参数却不起作用。就是因为这的写法有问题。3,感觉用Java开发的最大困难就是资料太多,由于各种包的版本不同,调用的方法也有差异。很难快速找到问题的原因,更多的时候要靠感觉去猜测。即使找到问题,也没时间去仔细研究问题的产生原因。我想这就是我们在享受开源项目所应当承受的无奈,不过这个理由也许有些牵强了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/baixj/archive/2008/01/04/2025723.aspx
import org.apache.axis.client.Call;import org.apache.axis.client.Service;import javax.xml.namespace.QName;import java.lang.Integer; public class AxisTest { public static void main(String[] args){ try { String varname="haha"; String endpoint="http://localhost/WebServiceTest/Service.asmx"; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setOperationName(new QName("http://www.my.com/Rpc","HelloWorld")); call.addParameter(new QName("http://www.my.com/Rpc","name"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); call.setUseSOAPAction(true); call.setSOAPActionURI("http://www.my.com/Rpc/HelloWorld"); String output=(String)call.invoke(new Object[]{varname}); System.out.println( "result is " + output.toString() + "."); } catch (Exception e) {System.err.println(e.toString());} } }Run(Ctrl+F11),大功告成。 开发过程中遇到的困难:1, call.setSOAPActionURI("http://www.my.com/Rpc/HelloWorld")写法。HelloWorld是DotNet2005开发的WebService的调用接口。如果不写清楚,总是返回未知的SoapAction头错误。通过网上的资料你也找不到原因。2, call.addParameter(new QName("http://www.my.com/Rpc","name"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN)中name的写法。Name是DotNet2005开发的WebService接口中的输入参数名。有好多朋友都问为什么接口调用成功了,参数却不起作用。就是因为这的写法有问题。3,感觉用Java开发的最大困难就是资料太多,由于各种包的版本不同,调用的方法也有差异。很难快速找到问题的原因,更多的时候要靠感觉去猜测。即使找到问题,也没时间去仔细研究问题的产生原因。我想这就是我们在享受开源项目所应当承受的无奈,不过这个理由也许有些牵强了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/baixj/archive/2008/01/04/2025723.aspx
java调用.net webservice1
.net与java 使用自定义对象通过WebService调用
java调用webservice
VB调用.NET DLL
Asp.net调用DLL文件
.net 和java发展前景
java笔记——值调用和引用调用
Java 类之间的调用a
C#调用Java类的方法
从.NET平台调用Win32 API
linux下编程学习----- 远程过程调用(rpc) - shake863 - Java...
关于java使用jacob.jar调用word的配置问题
JNA 实现Java调用C动态链接库
JNI编程 —— 让C++和Java相互调用
【解惑】:学.Net还是学Java?
ASP.NET调用javascript脚本的方法总结
asp.net源程序编译为dll文件并调用过程
建立Android SDK下的JNI、JAVA应用完整步骤---Android JAVA调用C++代码
asp.net源程序编译为dll文件并调用过程_asp.net教程_三联素材
JNI性能测试一—JNI调用C与Java调用java性能比较 - zgjxwl-----传说中晨雨的专栏 - CSDN博客
java.net.BindException: Address already in use解决方法
在 C# 中通过 P/Invoke 调用Win32 DLL - benben - Java...
android wrapper C调用java api - 示韦BadSmile的日志 - 网易博客
JNIExample:java/native相互之间调用的种种情形的例子--比较老的资料