当前位置:首页 > Java

java 如何发布webservice

2026-03-03 13:49:57Java

使用 JAX-WS 发布 WebService

JAX-WS 是 Java 提供的标准 API,用于开发和发布 WebService。以下是具体实现步骤:

  1. 创建服务接口和实现类
    定义一个服务接口,使用 @WebService 注解标记:

    @WebService
    public interface HelloService {
        String sayHello(String name);
    }

    实现该接口:

    @WebService(endpointInterface = "com.example.HelloService")
    public class HelloServiceImpl implements HelloService {
        @Override
        public String sayHello(String name) {
            return "Hello, " + name;
        }
    }
  2. 发布服务
    使用 Endpoint 类发布服务:

    public class WebServicePublisher {
        public static void main(String[] args) {
            String url = "http://localhost:8080/hello";
            Endpoint.publish(url, new HelloServiceImpl());
            System.out.println("WebService 发布成功,访问地址: " + url);
        }
    }
  3. 访问 WSDL
    服务发布后,通过浏览器访问 http://localhost:8080/hello?wsdl 查看 WSDL 文件。

使用 Spring Boot 发布 WebService

Spring Boot 集成 Apache CXF 可以简化 WebService 的发布:

java 如何发布webservice

  1. 添加依赖
    pom.xml 中添加以下依赖:

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
        <version>3.5.5</version>
    </dependency>
  2. 定义服务接口和实现类
    使用 @WebService 注解标记接口和实现类:

    @WebService
    public interface GreetingService {
        String greet(String name);
    }
    
    @WebService(endpointInterface = "com.example.GreetingService")
    public class GreetingServiceImpl implements GreetingService {
        @Override
        public String greet(String name) {
            return "Greetings, " + name;
        }
    }
  3. 配置 CXF 端点
    创建配置类注册服务:

    @Configuration
    public class WebServiceConfig {
        @Autowired
        private Bus bus;
    
        @Bean
        public Endpoint endpoint() {
            Endpoint endpoint = new EndpointImpl(bus, new GreetingServiceImpl());
            endpoint.publish("/greeting");
            return endpoint;
        }
    }
  4. 启动服务
    启动 Spring Boot 应用后,访问 http://localhost:8080/services/greeting?wsdl 查看 WSDL。

    java 如何发布webservice

使用 JAX-RS 发布 RESTful WebService

如果需要发布 RESTful 风格的 WebService,可以使用 JAX-RS:

  1. 添加依赖
    对于 Spring Boot,添加以下依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  2. 定义 REST 端点
    使用 @RestController@RequestMapping 注解:

    @RestController
    @RequestMapping("/api")
    public class RestService {
        @GetMapping("/hello")
        public String sayHello(@RequestParam String name) {
            return "Hello, " + name;
        }
    }
  3. 启动服务
    启动 Spring Boot 应用后,通过 http://localhost:8080/api/hello?name=World 访问服务。

注意事项

  • 端口冲突:确保发布的端口未被占用。
  • WSDL 访问:服务发布后,必须通过 ?wsdl 后缀访问 WSDL。
  • 安全性:生产环境建议添加安全措施(如 HTTPS、认证)。
  • 日志:使用 CXF 或 JAX-WS 时,可以配置日志拦截器查看 SOAP 消息。

以上方法覆盖了从传统 SOAP 到现代 RESTful 的 WebService 发布需求。

标签: javawebservice
分享给朋友:

相关文章

java如何学习

java如何学习

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

如何卸载java

如何卸载java

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

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何导入jar包

java如何导入jar包

在Eclipse中导入JAR包 右键项目 -> 选择"Properties" -> 左侧导航选择"Java Build Path" -> 切换到"Libraries"标签 ->…

java版本如何查看

java版本如何查看

查看Java版本的命令行方法 在命令行或终端中运行以下命令可以查看当前安装的Java版本: java -version 输出示例: java version "1.8.0_301" Java(TM…