WebService从零到项目开发使用3—技术研究之Axis2 POJO开发Web服
1.1.??????Axis2 使用POJO开发Web服务如果考虑快速开发一个Web服务,可以创建POJO(普通现有的java对象)然后使用axis2部署到tomcat上,这种方式容易快速开发、便于整合并且易于维护。下面我们会学习到如何从Spring框架中获得一个现有的POJO,然后将其作为ARR包部署到tomcat上来发布Web服务。下面我们以pojoguidespring为示例说明。 1.1.1.?????????????一个简单的POJO开发Web服务1.??????打开Eclipse,新建一个工程名为pojospring。 2.??????将axis2.war中的axis2-web和WEB-INF文件夹复制到工程WebContent目录下。 3.??????在工程下创建如下目录结构:
4.??????在src下编写POJO Java类:
???????? WeatherServicePOJO:
5.??????定义services.xml向Axis2描述该服务
服务名是WeatherService,服务作用域是application,在POJO WeatherService中有两个方法IN-ONLY和IN-OUT方法,消息接收器类型是RPC。 6.??????打开Ant文件WeatherService.build.xml,进行创建POJO服务任务:
7.??????运行ant文件,在工程目录WebContent/WEB-INF/services下会生成WeatherService目录:
注意:发布服务时WeatherService.aar和WeatherService仅可有一个。 8.??????将pojospring工程部署到Eclipse Tomcat下并启动,访问如下链接查看已发布的服务描述文件WSDL: 9.??????客户端使用RPCServiceClient测试发布的Web服务。编写WeatherRPCClient客户端测试类,由于该客户端没有callback,所以采用阻塞模式:(注意该客户端仅用于测试,如果与服务端分离开发的话可以使用客户端开发技术来开发,比如,动态调用接口-DII)
10.??运行以上代码,控制台输出:
11.??下面使用Spring整合POJO。 1.1.2.?????????????使用Spring POJO开发Web服务1.????????以上我们看到创建一个POJO服务很简单,但是这种方式有一定的限制,比如无法对Service进行初始化,这时我们需要在Service可用前手动初始化值。下面我们使用Spring避免这种缺陷。 2.????????在工程lib下导入spring.jar等jar包。 3.????????编写SpringInit.java,该类用于初始化Spring application Context
4.????????定义services.xml
Server.xml文件定义了两个service描述,ServiceTCCL属性确保Spring的类加载器能应用到该Service,load-on-startup属性(必须)保证Spring application context启动创建时加载该Service,ServiceObjectSupplier通知Axis该Service由Spring容器负责创建、和初始化。 5.????????在src下创建applicationContext.xml文件并添加如下配置:
6.????????SpringInit.java的startUp方法: 当Service发布时会先执行该方法。该方法首先获得service和Spring的类加载器,然后使用applicationContext.xml创建applicationContext,将Spring的类加载器设置为service的加载器,刷新applicationContext,现在我们的Spring开始为service服务了。 7.????????打开Ant文件SpringWeatherService.build.xml,进行创建POJO服务任务:
8.????????编写WeatherSpringRPCClient客户端测试类:
9.????????运行以上代码,控制台输出:
???????? 可见,Weather对象的初始化已经由Spring框架在启动时为我们做完了。
?资源
以上代码在工程pojospring.rar (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |