当前位置:首页 > Java

java如何调用webservice

2026-03-03 12:42:38Java

调用WebService的方法

Java调用WebService可以通过多种方式实现,以下是常见的几种方法:

使用JAX-WS生成客户端代码

通过JDK自带的wsimport工具生成客户端代码,适用于SOAP协议WebService。

  1. 生成客户端代码 在命令行中执行以下命令:

    wsimport -keep -p com.example.client http://example.com/service?wsdl

    参数说明:

    • -keep:保留生成的.java文件
    • -p:指定生成代码的包名
    • 最后是WSDL地址
  2. 调用服务

    // 创建服务实例
    ServiceService service = new ServiceService();
    ServicePortType port = service.getServicePort();
    
    // 调用方法
    String result = port.someMethod("param");

使用Apache CXF框架

CXF是一个功能强大的WebService框架,支持SOAP和REST。

  1. 添加Maven依赖

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.5.5</version>
    </dependency>
  2. 动态调用示例

    JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    Client client = dcf.createClient("http://example.com/service?wsdl");
    
    Object[] result = client.invoke("methodName", "param1", "param2");
    String response = (String) result[0];

使用Spring Web Services

适用于Spring项目集成WebService调用。

  1. 添加依赖

    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
        <version>3.1.0</version>
    </dependency>
  2. 配置和使用

    WebServiceTemplate template = new WebServiceTemplate();
    StringResult result = new StringResult();
    
    template.sendSourceAndReceiveToResult(
        "http://example.com/service",
        new StringSource("<request>...</request>"),
        result);
    
    String response = result.toString();

使用HttpURLConnection直接调用

适用于简单的RESTful WebService。

URL url = new URL("http://example.com/api/resource");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");

BufferedReader in = new BufferedReader(
    new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
    content.append(inputLine);
}
in.close();
String response = content.toString();

使用第三方HTTP客户端

如Apache HttpClient或OkHttp。

Apache HttpClient示例:

java如何调用webservice

CloseableHttpClient client = HttpClients.createDefault();
HttpGet request = new HttpGet("http://example.com/api");
CloseableHttpResponse response = client.execute(request);

String result = EntityUtils.toString(response.getEntity());

注意事项

  • 确保网络连接正常,能访问目标WebService地址
  • 检查WSDL或API文档了解正确的调用方式
  • 处理可能的异常情况,如网络超时、服务不可用等
  • 根据服务要求设置必要的请求头,如Content-Type、Authorization等
  • 考虑使用连接池管理HTTP连接以提高性能

根据具体需求选择合适的调用方式,JAX-WS适合规范的SOAP服务,CXF功能更全面,直接HTTP调用则更灵活轻量。

标签: javawebservice
分享给朋友:

相关文章

如何用java

如何用java

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorl…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…