`
ritcher
  • 浏览: 82358 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

axis调用两种风格的.net WebService

阅读更多

Rpc风格的.net服务端代码:

using System;   
using System.Collections;   
using System.ComponentModel;   
using System.Data;   
using System.Linq;   
using System.Web;   
using System.Web.Services;   
using System.Web.Services.Protocols;   
using System.Xml.Linq;   
  
namespace WebService1   
{       
       
    [WebService(Namespace = "http://tempuri.org/")]   
    public class Service1 : System.Web.Services.WebService   
    {   
  
        [WebMethod]   
        [SoapRpcMethod(Action = "http://tempuri.org/hello", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]   
  
        public string hello(String s)   
        {   
            return "Hello,"+s;   
        }   
    }   
}  

 

Document风格的.net服务端代码:

namespace WebService1   
{       
       
    [WebService(Namespace = "http://tempuri.org/")]   
    public class Service1 : System.Web.Services.WebService   
    {   
  
        [WebMethod]           
        public string hello(String s)   
        {   
            return "Hello,"+s;   
        }   
    }   
}  

 

java客户端代码:

String url="http://localhost:1117/Service1.asmx";   
String namespace = "http://tempuri.org/";   
String methodName = "hello";   
String soapActionURI = "http://tempuri.org/hello";   
Service service = new Service();   
Call call = (Call) service.createCall();   
call.setTargetEndpointAddress(new java.net.URL(url));   
call.setUseSOAPAction(true);   
//这个地方没设对就会出现Server was unable to read request的错误   
call.setSOAPActionURI(soapActionURI);   
call.setOperationName(new QName(namespace, methodName));   
/*这里如果设置成call.addParameter(new QName(namespace,"s"), XMLType.XSD_STRING,   
  ParameterMode.IN);就是调用document风格的.net服务端  
  如果设反了,.net服务端就接不到参数,接到的是null  
*/  
call.addParameter("s", XMLType.XSD_STRING, ParameterMode.IN);   
call.setReturnType(XMLType.XSD_STRING);   
String ret = (String) call.invoke(new Object[] { "kusix" });   
System.out.println("返回结果---> " + ret);  

如果.net在提供Rpc服务时设置成

[SoapRpcMethod(Action = "",.....  

的话,那java客户端连

call.setUseSOAPAction(true);   
call.setSOAPActionURI(soapActionURI);  

这两句可以去掉了。  

分享到:
评论

相关推荐

    java调用.net webservice实例

    Java调用.NET WebService是跨平台通信的一种常见方式,尤其在企业级应用中,不同技术栈的应用需要相互交互数据时,这种技术尤为实用。Apache Axis是Java中常用的用于调用Web服务的工具,它提供了方便的API来创建和...

    java处理.net webservice返回的对象

    总结来说,Java通过Apache Axis调用.NET ASMX WebService主要涉及以下几个步骤: 1. 添加必要的依赖库。 2. 创建Service和Call对象。 3. 设置目标Web服务地址、操作名称、参数和返回类型。 4. 调用Web服务方法并接收...

    java程序调用.net/c#的webservice

    Java程序调用.NET/C#的Web服务是一种跨平台的交互方式,主要依赖于SOAP(Simple Object Access Protocol)协议,使得不同编程语言开发的应用程序能够相互通信。在本场景中,用户已经提供了一个.NET的Web服务,而我们...

    Java与.net开发webservice详解大全

    【Java与.NET开发WebService详解大全】 在IT领域,WebService是一种基于标准协议(如SOAP和WSDL)的跨平台、跨语言的...对于开发者来说,理解这两种语言如何互调的细节至关重要,有助于提高系统的可扩展性和集成能力。

    Java与.NET 的Web Services相互调用

    Java和.NET作为两种主流的开发平台,它们之间能够通过Web Services实现数据交换和功能调用,使得跨平台协作变得可能。Web Services是一种基于XML的开放标准,允许应用程序之间通过互联网进行通信,而无需关心底层的...

    java调用.net的webservice传字符串参数

    我们将深入讲解两种主流的方法:Axis和XFire。 **一、 Axis** 1. **Axis简介**: Axis是Apache软件基金会的一个开源项目,它提供了一套用于构建和部署Web服务的工具和库。在Java中,Axis使得调用.NET的Web服务变得...

    java调用.net写的Webservice[归类].pdf

    Java调用.NET编写的Web服务主要是通过SOAP协议进行通信,这是一种基于XML的远程过程调用标准。本文将详细探讨如何使用Java的Axis1.x库来调用.NET WebService,并介绍在此过程中可能遇到的问题及解决方案。 首先,让...

    Java WebService 简单实例 方式二(axis1直接调用方式)

    Java Web Service 主要有两种形式:SOAP-based 和 RESTful。本文将关注SOAP-based Web Service。 #### SOAP-based Web Service SOAP(Simple Object Access Protocol)是一种轻量级协议,用于在分布式环境中交换...

    java调用.net写的Webservice.pdf

    在示例中,使用了Axis1.x版本(具体为1.4)来调用.NET Web服务。首先,创建一个Service对象,并实例化Call对象。然后,设置目标端点地址(即Web服务的URL),操作名称(对应于Web服务方法),以及输入和输出参数。...

    Java调用WebService接口的方法

    在Java中,Apache Axis库提供了用于创建和调用WebService的工具。 在Java中调用WebService接口,主要涉及以下几个步骤: 1. **创建Service对象**:`Service`是Apache Axis库中的一个类,用于初始化并管理与...

    java调用webservice(axis + ksoap2)

    这两种方法都可以实现Java调用WebService,但手动构建更灵活,适用于没有预生成客户端代码的情况。 通过这个例子,你可以了解到在Java(尤其是Android)环境中调用WebService的基本流程和关键点,为你的项目提供了...

    WebService大讲堂之Axis2系列教程

    2. **Struts 2.1.6实现的Web版PIM**:此项目强调了在Web环境中使用WebService,包括直接调用Java类和通过HTTP SOAP协议两种方式。 3. **C#实现的PIM**:展示了Java和.NET技术的集成,演示了如何在多平台环境中协同...

    lotus domino webservice建立和调用

    2. **后端调用**:对于服务器端的应用,例如Java、.NET或其他语言,你可以使用对应的Web服务客户端库(如Apache Axis for Java,或者.NET的SoapHttpClient类)来创建一个代理类,这个类封装了Web服务的调用细节。...

    webservice Axis2教程

    这两种调用方式分别封装在两组Model类中。可以通过配置 struts.xml文件来提定使用哪组模型类(调用方式)。第三个项目使用了C#来实现PIM。这个项目的目的是为了演示如何将.net技术与Java 技术集成来实现一个完整的...

    java调用webservice接口方法[文].pdf

    Java 调用 Webservice 接口方法有多种方式,下面我们将介绍两种常见的方式:直接 AXIS 调用远程的 Webservice 和直接 SOAP 调用远程的 Webservice。 直接 AXIS 调用远程的 Webservice 使用 AXIS 框架可以直接调用...

Global site tag (gtag.js) - Google Analytics