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

相关文章

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 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就