`
songhongchen
  • 浏览: 122711 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java axis调用带有soap头(soapheader)的.net webservice

阅读更多
有很多同学问我使用axis调用.net带soapheader的webservice是如何实现的,现在贴出代码
.net webservice的soap代码如下,注意第四行:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
  <AuthHeaderCS xmlns="http://tempuri.org/">
      <Username>string</Username>
      <Password>string</Password>
    </AuthHeaderCS>
  </soap:Header>
  <soap:Body>
    <StarTrans xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>


java代码:
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.SOAPException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.message.SOAPHeaderElement;

public class aa
{
	public static void main(String[] args) throws ServiceException, RemoteException
	{
		try
		{
			// 服务端的url,需要根据情况更改。
			String endpointURL = "http://192.168.0.209:7080/DataShareWebService.asmx?wsdl";
			Service service = new Service();
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(new java.net.URL(endpointURL));
			call.setSOAPActionURI("http://tempuri.org/" + "StarTrans");
			call.setOperationName(new QName("DataShareWebService", "StarTrans"));// 设置操作的名称。
			// 由于需要认证,故需要设置调用的用户名和密码。
			SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("http://tempuri.org/", "AuthHeaderCS");
			soapHeaderElement.setNamespaceURI("http://tempuri.org/");
			try
			{
				soapHeaderElement.addChildElement("Username").setValue("admin");
				soapHeaderElement.addChildElement("Password").setValue("123");
			}
			catch (SOAPException e)
			{
				e.printStackTrace();
			}
			call.addHeader(soapHeaderElement);
			call.setReturnType(XMLType.XSD_STRING);// 返回的数据类型
			call.addParameter("op1", XMLType.XSD_STRING, ParameterMode.IN);// 参数的类型
			String ret = (String) call.invoke(new Object[] { "11111" });// 执行调用
			System.out.println(ret);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
}

第27 28两行,NamespaceURI要写两次,如果不知道你的webservice的NamespaceURI是什么,就要wsdl里面去看一下
3
0
分享到:
评论
2 楼 ly102289 2010-09-13  
// 服务端的url,需要根据情况更改。  
            String endpointURL = "http://192.168.0.209:7080/DataShareWebService.asmx?wsdl";  
在这个位置的URL里好像不用“?wsdl
1 楼 lzy.je 2009-01-05  
巧了,看来“头”的问题很重要啊,呵呵。

使用 .NET 调用有自定义 Handler 验证的 XFire Web 服务

相关推荐

    java axis 调用 .net webservice 短信收发

    Java Axis调用.NET WebService实现短信收发是一个跨平台、跨语言的通信技术应用实例。在本文中,我们将深入探讨这个主题,了解如何利用Java的Axis框架与.NET环境中的WebService进行交互,特别是在短信发送和接收方面...

    java采用axis调用.net写的WebService

    java采用axis调用.net写的WebService,WebService的参数有传人和传出,传出的参数为ref,java端ParameterMode.OUT,传人的为ParameterMode.IN,WebService返回值为String,java利用Map取传出参数,对Map进行遍历取得...

    java调用.net发布的webservice(asmx)

    本文将详细讲解如何使用Java调用.NET发布的Web Service(ASMX),并解决在此过程中可能出现的SOAPAction报错和“Server not identified”错误。 首先,我们需要了解ASMX。ASMX是.NET Framework早期版本中用于创建...

    java调用.net webservice实例

    在本实例中,Java通过Apache Axis库调用.NET WebService,主要涉及以下步骤和知识点: 1. **Apache Axis库**:Apache Axis是Apache软件基金会开发的一个开源项目,它提供了Java到SOAP的绑定框架,允许Java开发者...

    Java Webservice Axis2 Client(含soapheader验证)

    总之,Java Webservice Axis2 Client的开发涉及到生成客户端代码、设置SOAP Header、调用服务和处理响应等多个步骤。了解这些概念和API对于构建安全、可靠的Web服务客户端至关重要。在实际项目中,确保遵循最佳实践...

    Java调用ASP.NET的WebService接口实例

    Java调用.NET的WebService接口实例,jar包删减到三个,干净清爽,里面包含注多注释和图解,搞了半天的家伙拿出来与大家分享,无任何BUG,修改里面的参数即可直接运行,对于这种好东西,花了半天时间10分不算高,重在...

    java调用.net webservice时所需的jar包

    在Java中调用.NET Web服务涉及的技术主要是SOAP(Simple Object Access Protocol)和WS-I(Web Services Interoperability),因为.NET Web服务通常是基于这些标准构建的。为了实现这种跨平台通信,Java开发者需要...

    java 通过axis调用天气预报的webservice

    标题中的“Java通过Axis调用天气预报的WebService”是指使用Java编程语言,通过Apache Axis库来访问和使用公开的天气预报Web服务。Apache Axis是一个开放源码的SOAP(简单对象访问协议)工具包,它允许开发者创建和...

    java 调.net webservice

    最近开发要做一人用java 调.net webservice的,以上是我用axis1.4写的一个小例子,希望可以借鉴

    java axis调用第三方webservice程序demo

    本文将详细介绍如何使用Java Axis调用第三方Webservice,并提供一个简单的示例。 一、Java Axis调用第三方Webservice的准备工作 1. **所需Jar包**: 在Java中使用Axis调用Webservice,首先需要引入必要的库文件。...

    使用axis1.2调用.net webservice

    以前看别人写的,似乎都比较复杂,而且没有提供一个webservice供初学者测试,我找了一个http://www.webservicex.net/globalweather.asmx,根据这个写了一个例子,让新学的少走一些弯路吧

    Java Axis 直接调用webservice 接口工具类

    Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;

    java处理.net webservice返回的对象

    在Java中调用.NET编写的ASMX WebService是一种常见的跨平台交互方式,允许Java应用程序利用.NET框架...这个过程需要对Java的Web服务调用机制和XML序列化有深入理解,以便正确地解析和处理.NET WebService返回的数据。

    Java+Axis2调用Web Services 网络接口

    Java和Axis2是开发Web服务客户端的重要工具,用于调用基于SOAP协议的Web服务。本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的...

    java axis 调用webservice服务端

    Java Axis调用WebService服务端是Java开发者在进行分布式系统交互时常见的一种技术实践。Axis是Apache软件基金会开发的一个开源项目,它提供了一种方便、高效的方式,使得Java应用程序能够作为客户端来消费或作为...

    java调用.NET的webservice源码

    总结起来,Java调用.NET的Web服务主要涉及XML、SOAP、WSDL等相关技术,以及使用JAX-WS、Apache Axis2或CXF等Java库生成客户端代理并进行调用。通过理解这些知识点,开发者可以构建起Java和.NET应用程序之间的桥梁,...

    java 调用https webservice实例及axis包

    Apache Axis是一款开源的Web Service框架,它使得Java开发者能够方便地创建和调用Web Service。对于HTTPS的支持,Axis提供了相应的配置和工具。 调用HTTPS Web Service的步骤大致如下: 1. **添加依赖**:首先,你...

    java 调用.net webservice

    当然可以调用任何 wsdl地址。只要是webservice 这里是比较流行的。 这里有2个测试地址。 (1):http://www.webservicex.com/stockquote.asmx&lt;br&gt;(2):...

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

    总之,Java调用.NET/C#的Web服务是一个涉及网络通信、SOAP协议、类型转换等多个技术层面的过程,需要对Java和.NET平台都有一定的理解。正确配置和使用相关的工具库,可以有效地实现跨平台的通信。

    java调用.net写的返回值为dataset的webservice(2)实例项目

    网上的调用例子太多了,有的要用cmd来解析webserive,有的没有包,有的代码报错。学习及测试花了4天,终于完成了。 1直接把项目放到 myeclipse的工作区间加载就行。然后將axis-1_4包下的lib文件夹里的包 都加載到...

Global site tag (gtag.js) - Google Analytics