有很多同学问我使用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里面去看一下
分享到:
相关推荐
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发布的Web Service(ASMX),并解决在此过程中可能出现的SOAPAction报错和“Server not identified”错误。 首先,我们需要了解ASMX。ASMX是.NET Framework早期版本中用于创建...
在本实例中,Java通过Apache Axis库调用.NET WebService,主要涉及以下步骤和知识点: 1. **Apache Axis库**:Apache Axis是Apache软件基金会开发的一个开源项目,它提供了Java到SOAP的绑定框架,允许Java开发者...
总之,Java Webservice Axis2 Client的开发涉及到生成客户端代码、设置SOAP Header、调用服务和处理响应等多个步骤。了解这些概念和API对于构建安全、可靠的Web服务客户端至关重要。在实际项目中,确保遵循最佳实践...
Java调用.NET的WebService接口实例,jar包删减到三个,干净清爽,里面包含注多注释和图解,搞了半天的家伙拿出来与大家分享,无任何BUG,修改里面的参数即可直接运行,对于这种好东西,花了半天时间10分不算高,重在...
在Java中调用.NET Web服务涉及的技术主要是SOAP(Simple Object Access Protocol)和WS-I(Web Services Interoperability),因为.NET Web服务通常是基于这些标准构建的。为了实现这种跨平台通信,Java开发者需要...
标题中的“Java通过Axis调用天气预报的WebService”是指使用Java编程语言,通过Apache Axis库来访问和使用公开的天气预报Web服务。Apache Axis是一个开放源码的SOAP(简单对象访问协议)工具包,它允许开发者创建和...
最近开发要做一人用java 调.net webservice的,以上是我用axis1.4写的一个小例子,希望可以借鉴
本文将详细介绍如何使用Java Axis调用第三方Webservice,并提供一个简单的示例。 一、Java Axis调用第三方Webservice的准备工作 1. **所需Jar包**: 在Java中使用Axis调用Webservice,首先需要引入必要的库文件。...
以前看别人写的,似乎都比较复杂,而且没有提供一个webservice供初学者测试,我找了一个http://www.webservicex.net/globalweather.asmx,根据这个写了一个例子,让新学的少走一些弯路吧
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;
在Java中调用.NET编写的ASMX WebService是一种常见的跨平台交互方式,允许Java应用程序利用.NET框架...这个过程需要对Java的Web服务调用机制和XML序列化有深入理解,以便正确地解析和处理.NET WebService返回的数据。
Java和Axis2是开发Web服务客户端的重要工具,用于调用基于SOAP协议的Web服务。本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的...
Java Axis调用WebService服务端是Java开发者在进行分布式系统交互时常见的一种技术实践。Axis是Apache软件基金会开发的一个开源项目,它提供了一种方便、高效的方式,使得Java应用程序能够作为客户端来消费或作为...
总结起来,Java调用.NET的Web服务主要涉及XML、SOAP、WSDL等相关技术,以及使用JAX-WS、Apache Axis2或CXF等Java库生成客户端代理并进行调用。通过理解这些知识点,开发者可以构建起Java和.NET应用程序之间的桥梁,...
Apache Axis是一款开源的Web Service框架,它使得Java开发者能够方便地创建和调用Web Service。对于HTTPS的支持,Axis提供了相应的配置和工具。 调用HTTPS Web Service的步骤大致如下: 1. **添加依赖**:首先,你...
当然可以调用任何 wsdl地址。只要是webservice 这里是比较流行的。 这里有2个测试地址。 (1):http://www.webservicex.com/stockquote.asmx<br>(2):...
总之,Java调用.NET/C#的Web服务是一个涉及网络通信、SOAP协议、类型转换等多个技术层面的过程,需要对Java和.NET平台都有一定的理解。正确配置和使用相关的工具库,可以有效地实现跨平台的通信。
网上的调用例子太多了,有的要用cmd来解析webserive,有的没有包,有的代码报错。学习及测试花了4天,终于完成了。 1直接把项目放到 myeclipse的工作区间加载就行。然后將axis-1_4包下的lib文件夹里的包 都加載到...