java调用webservice wsdl
时间: 2023-11-24 08:49:35 浏览: 47
Java调用webservice wsdl的过程如下:
1. 获取对方提供的wsdl地址。
2. 在网页上访问wsdl文档,了解webservice的接口和方法。
3. 创建客户端代理工厂,生成客户端代理类。
4. 通过客户端代理类调用webservice的方法。
具体步骤如下:
1. 使用wsimport命令生成客户端代理类。命令格式为:wsimport -s [生成代码存放路径] [wsdl地址]。
2. 在Java代码中创建客户端代理工厂,生成客户端代理类。代码如下:
```
URL url = new URL("wsdl地址");
QName qname = new QName("命名空间", "服务名称");
Service service = Service.create(url, qname);
ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(服务接口.class);
factory.setAddress("服务地址");
服务接口 client = (服务接口) factory.create();
```
3. 调用webservice的方法。代码如下:
```
String result = client.方法名(参数);
```
相关问题
java调用webservice接口wsdl的具体代码实现
Java调用webservice接口wsdl的具体代码实现可以分为以下几个步骤:
1. 导入webservice库:在Java开发环境中,需要导入webservice相关的库,如JAX-WS、JAXB等。
2. 生成客户端代码:使用wsimport命令或者IDE中的webservice工具,生成客户端代码。wsimport是JDK自带的命令行工具,可以根据WSDL描述文件生成Java代码。
3. 创建webservice客户端:在Java代码中,创建webservice客户端,即创建一个Service实例,并通过Service实例获取Port实例。
4. 调用webservice接口:通过Port实例调用webservice接口,即调用webservice接口提供的方法。
下面是具体的Java代码实现:
```java
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class WebserviceClient {
public static void main(String[] args) throws Exception {
// 创建WSDL的URL,注意不是服务地址
URL url = new URL("http://localhost:8080/HelloWorld?wsdl");
// 创建服务名称
QName qname = new QName("http://webservice.example.com/", "HelloWorldImplService");
// 创建服务视图
Service service = Service.create(url, qname);
// 获取服务实现类
HelloWorld helloWorld = service.getPort(HelloWorld.class);
// 调用接口方法
String result = helloWorld.sayHello("world");
System.out.println(result);
}
}
```
其中,HelloWorld是webservice接口类,代码如下:
```java
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
String sayHello(@WebParam(name = "name") String name);
}
```
在以上代码中,我们首先创建了WSDL的URL,然后通过QName指定服务名称,接着通过Service.create方法创建服务实例,再通过getPort方法获取服务实现类。最后,我们调用了服务实现类的sayHello方法,并将结果打印出来。
需要注意的是,以上代码中的服务地址是本地地址,需要根据实际情况修改。
java调用wsdl的webservice
1. 生成客户端代码
可以使用Java自带的wsimport工具,通过指定WSDL文件的URL生成客户端代码。
命令行方式:
```
wsimport -s <输出目录> <WSDL文件URL>
```
示例:
```
wsimport -s . http://localhost:8080/HelloWorld?wsdl
```
2. 创建服务对象
使用生成的客户端代码中的服务类,创建服务对象。
示例:
```
HelloWorldService service = new HelloWorldService();
HelloWorld port = service.getHelloWorldPort();
```
3. 调用服务方法
使用服务对象调用服务方法。
示例:
```
String result = port.sayHello("World");
System.out.println(result);
```
完整示例:
```
import com.example.helloworld.HelloWorld;
import com.example.helloworld.HelloWorldService;
public class Test {
public static void main(String[] args) {
HelloWorldService service = new HelloWorldService();
HelloWorld port = service.getHelloWorldPort();
String result = port.sayHello("World");
System.out.println(result);
}
}
```