下面我们来看Java如何通过WSDL文件来调用这些web service:
注意,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法。
1,直接AXIS调用远程的web service
我觉得这种方法比较适合那些高手,他们能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是专门搞这行的,即使一段时间看懂,后来也就忘记了。直接调用模式如下:
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String temp = "测试人员";
String result = (String)call.invoke(new Object[]{temp});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
2,直接SOAP调用远程的webservice
这种模式我从来没有见过,也没有试过,但是网络上有人贴出来,我也转过来
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import java.io.*;
import java.net.*;
import java.util.Vector;
public class caService{
public static String getService(String user) {
URL url = null;
try {
url=new URL("http://192.168.0.100:8080/ca3/services/caSynrochnized");
} catch (MalformedURLException mue) {
return mue.getMessage();
}
// This is the main SOAP object
Call soapCall = new Call();
// Use SOAP encoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// This is the remote object we're asking for the price
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
// This is the name of the method on the above object
soapCall.setMethodName("getUser");
// We need to send the ISBN number as an input parameter to the method
Vector soapParams = new Vector();
// name, type, value, encoding style
Parameter isbnParam = new Parameter("userName", String.class, user, null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try {
// Invoke the remote method on the object
Response soapResponse = soapCall.invoke(url,"");
// Check to see if there is an error, return "N/A"
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String f = fault.getFaultString();
return f;
} else {
// read result
Parameter soapResult = soapResponse.getReturnValue ();
// get a string from the result
return soapResult.getValue().toString();
}
} catch (SOAPException se) {
return se.getMessage();
}
}
}
分享到:
相关推荐
下面将详细解释如何在Java中通过WSDL调用Web服务。 首先,WSDL文件包含了Web服务的元数据,如服务的命名空间、端点(即服务地址)、操作(方法)和消息类型。当Java应用需要与一个以WSDL发布的Web服务交互时,它...
为了在Java环境中与这些Web服务交互,我们需要将WSDL文件转换为Java类,这就是`wsdl2java`工具的作用。 `wsdl2java`是Apache Axis项目的一部分,它是一个强大的工具,可以自动生成Java客户端和服务端代码,这些代码...
8. **客户端生成**:CXF还支持从WSDL生成Java客户端代码,使得调用Web服务变得更加简单,只需按照生成的客户端代码进行操作即可。 9. **最佳实践**:在实际项目中,确保Java接口清晰、符合面向服务的设计原则,以及...
在本实例中,我们将探讨如何使用Java和WSDL来创建和调用Web Service。 一、创建Web Service 1. 定义WSDL文件:首先,你需要创建一个WSDL文件来描述你的服务。WSDL文件定义了服务的端点(也称为SOAP地址),服务的...
这样,开发者无需手动编写调用Web服务的Java代码,只需导入WSDL文件,MyEclipse就能自动生成相应的Java客户端 stub类,这些类提供了与Web服务交互的方法。 具体步骤如下: 1. 打开MyEclipse,创建一个新的Web项目...
5. **调用方法**:现在,你可以通过这个代理对象来调用WSDL中定义的方法,并传入相应的参数。 ```java String response = port.sayHello("World"); System.out.println(response); ``` 在处理WSDL文档时,还可以...
标题中的“通过本地Java代码访问WSDL接口”指的是在Java编程环境中,利用WSDL(Web Service Description Language)文件来创建客户端代理类,从而调用远程Web服务。WSDL是一种XML格式,它定义了Web服务的接口,包括...
本文将深入探讨如何使用MyEclipse集成开发环境来调用Axis工具,通过WSDL(Web Service Description Language)文件生成客户端代码。这个过程对于理解Web服务的生命周期和客户端开发流程至关重要。 首先,我们需要...
- 通过`wsimport`工具,可以基于WSDL文件自动生成客户端绑定代码(Stubs),然后像调用本地方法一样调用Web服务。 5. **使用其他库**: - 除了Apache Axis和JAX-WS,还有许多其他库如Spring-WS、Gson-WS等,它们...
当你有一个WSDL文件时,你可以使用CXF的`wsdl2java`命令行工具将其转换为Java代码,这样你就可以在Java环境中实现或调用这个Web服务。 以下是使用`wsdl2java`的基本步骤: 1. **安装CXF**: 首先,你需要在你的开发...
5. **调用Web Service**:使用Java客户端代理类的方法,传入参数,执行Web Service的远程调用。如果需要传递自定义类,确保这些类在Java和.NET中都有对应的序列化实现。 6. **处理响应**:Web Service调用完成后,...
2. 如何使用 C# 语言来调用 Java Web Service。 3. 如何在 ASP.NET 中实现 Web Service 的客户端和服务器端。 在下面的小节中,我们将详细介绍如何在 ASP.NET 中使用 C# 调用 Java Web Service。 Web Service 的...
本教程将围绕“WSDL生成Web Service java客户端”这一主题,详细介绍如何利用WSDL文件创建Java客户端来调用Web服务。 首先,WSDL文件是一种XML格式的文档,它描述了一个Web服务的接口,包括服务提供的操作、消息...
"Java 调用 WSDL" Java 调用 WSDL 是一种常见的技术,它允许 Java 应用程序调用远程... Java 调用 WSDL 文件是通过解析 WSDL 文件来获取服务的接口和操作信息,然后使用 AXIS 库或 SOAP 库等来调用远程的 Web 服务。
它通过SOAP(Simple Object Access Protocol)协议进行数据交换,使用WSDL(Web Services Description Language)来描述服务接口,而UDDI(Universal Description, Discovery, and Integration)则用于服务的发布和...
这些类包含了调用Web Service所需的所有方法和数据类型。 3. 创建代理对象:在Java代码中,实例化生成的代理类对象,这将连接到.NET Web Service。 4. 调用服务方法:通过代理对象调用.NET Web Service的方法,...
在MyEclipse中,可以通过“File” > “Import” > “Web” > “Web Service Definition (WSDL)”来导入这个文件。 2. **生成服务骨架**:导入WSDL后,MyEclipse会自动生成服务骨架类。这些类包含了Web服务的接口和...
在Java环境中,开发Web服务时,通常先编写实现所需功能的Java类或接口,然后创建WSDL文件来公开这些服务。Axis2提供了一个工具,可以自动生成WSDL文件,这样开发者就不需要手动编写复杂的XML描述。 3. **Axis2简介...
- 调用Web Service时需要考虑安全问题,例如使用HTTPS加密通信,添加身份验证和授权机制,或者使用WS-Security标准来保护Web Service。 总结,Java调用Java Web Service涉及了服务的创建、发布、调用等多个环节,...