当前位置:首页 > 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。

java如何调用webservice

  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. 添加依赖

    java如何调用webservice

    <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示例:

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程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名.方…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

如何运行java项目

如何运行java项目

运行Java项目的步骤 确保Java环境已安装 在运行Java项目前,需确认系统已安装Java Development Kit(JDK)。通过命令行输入java -version和javac -ver…