Aqualogic Service Bus 的第一个例子 (入门)

2024-01-25 19:32

本文主要是介绍Aqualogic Service Bus 的第一个例子 (入门),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本例子出自 《SOA权威指南》 第三章中的那个入门例子。

亲自实践,运行通过。每一步纪录如下:

 

1、安装软件,P12。创建Service Bus域,P14。

 

2、参照P33的小节,启动域,创建一个Project (TravelAgent_Demo1) 。

 

3、P35,创建WSDL小节。在这之前就要写好一个Web Service,发布出去,如下:

 

TravelSchedule.java

package com.travel.kanghui;
import javax.jws.WebService;
@WebService
public interface TravelSchedule {   
    String makeSchedule(String destination);
}

 

TravelScheduleImpl.java

package com.travel.kanghui;
import javax.jws.WebService;
@WebService
public class TravelScheduleImpl implements TravelSchedule {
    public String makeSchedule(String destination) {       
        System.out.println("Kanghui Function --- makeSchedule is called.");       
        if ("dalian".equals(destination)) {
            return "Dalian Schedule...";
        } else {
            return "Beijing Schedule...";
        }
    }   
}

 

StartWebService.java

package com.travel.kanghui;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class StartWebService {   
    public static void main(String[] args) {          
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();       
        factory.setServiceClass(TravelScheduleImpl.class);    

        // 注意这里的port number, 7001是alsb domain的端口,如果发布到7001上会有问题。   
        factory.setAddress("http://localhost:7002/business/kanghui/TravelScheduleService");       
        Server server = factory.create();       
        server.start();
    }   
}


TestWebService.java

package com.travel.kanghui;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class TestWebService {   
    public static void main(String[] args) {       
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();       
        factory.setAddress("http://localhost:7002/business/kanghui/TravelScheduleService");       
        factory.setServiceClass(TravelSchedule.class);       
        TravelSchedule ts = (TravelSchedule) factory.create();       
        System.out.println(ts.makeSchedule("dalian"));
    }   
}

 

WebService启动后,http://localhost:7002/business/kanghui/TravelScheduleService?wsdl 访问这个链接确认服务已经正常启动。

 

4、P37,创建业务服务。

5、P39,创建代理服务。接着,P41,配置 代理服务 和 业务服务 的关联,即‘Edit Message Flow’

http://localhost:7001/esb/TravelSchedule?wsdl 访问这个链接来确认代理服务运行正常。

6、P43,测试代理服务。

7、写段代码测试这个 esb 的 service

package com.travel.kanghui;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class TestESBService {   
    public static void main(String[] args) {       
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();       
        factory.setAddress("http://localhost:7001/esb/TravelSchedule");       
        factory.setServiceClass(TravelSchedule.class);       
        TravelSchedule ts = (TravelSchedule) factory.create();       
        System.out.println(ts.makeSchedule("dalian"));
    }   
}

运行输出正确。(不要忘了 web service 要先启动起来)

这篇关于Aqualogic Service Bus 的第一个例子 (入门)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644366

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多