把一些Java调用接口的事例看过之后, 它们好多都是通过Ctrl+C、Ctrl+V得来的, 在好多拿来运用时却发觉存在差错, 这让人烦闷, 为此特意撰写了一篇经过测试的, 仅仅只是一个小例子。
服务端(为客户端提供接口):
使用工具:-8.6.1-win32,--7.0.11
开发步骤:1.创建工程
点击File按钮 , 接着选择New , 随后点击Web , 此时会弹出可以填写Name、选择XFire并一路点击next直至完成的Web窗口。备注: 例子中的Name是Demo。
创建完毕之后, 将生成的web.xml文件打开, 能够看到, XFire已然配置妥当。
View Code
1xml version="1.0" encoding="UTF-8"?>2<web-appxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.5"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">3<servlet>4<servlet-name>XFireServletservlet-name>5<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServletservlet-class>6<load-on-startup>0load-on-startup>7servlet>8<servlet-mapping>9<servlet-name>XFireServletservlet-name>10<url-pattern>/services/*url-pattern>11servlet-mapping>12<welcome-file-list>13<welcome-file>index.jspwelcome-file>14welcome-file-list>15web-app>
2.创建服务
于选择方面的New Web处, 致使New Web窗口弹出, 进行这样的选择: web from Java class(-up ), 并且将下面的new Java bean勾选起来, 接着予以Next>操作, 于Web name之中进行填写, 在Java栏处点击New..., 在弹出的窗口里于Name:中填入com.demo., 而后点击。
完成后,生成了一个的配置.xml
View Code
1xml version="1.0" encoding="UTF-8"?>2<beansxmlns="http://xfire.codehaus.org/config/1.0">34<service>5<name>IMyServicename>6<serviceClass>com.demo.service.IIMyServiceserviceClass>7<implementationClass>8com.demo.service.IMyServiceImpl9implementationClass>10<style>wrappedstyle>11<use>literaluse>12<scope>applicationscope>13service>beans>
生成了接口和默认实现:
View Code
1packagecom.demo.service;2//Generated by MyEclipse34publicinterfaceIIMyService {56publicString example(String message);78}
View Code
1packagecom.demo.service;2//Generated by MyEclipse34publicclassIMyServiceImplimplementsIIMyService {56publicString example(String message) {7returnmessage;8}910}
服务端代码生成完毕。
针对测试服务端, 存在这样的前提条件, 即要对服务器进行配置, 并且要去完成服务端的一项工作, 具体就是部署, 之后还要启动它。
2.先是进行选择方面的SOAP Web操作, 接着, 要关注Web窗口右侧的WSDL Page操作, 然后, 输入网址: :8080/Demo//?wsdl, 最后呈现出如下图的样子有显示。
3.采取双击的动作, 输入hello这个内容, 在其下方将会展示出out():hello 这个情况, 针对此进行的测试是通过的。
客户端(调用服务端提供的接口方法):
使用工具:
需要引入以下这些包, 分别是: -codec-1.2.jar, 还有--3.0.-rc2.jar, 以及jdom.jar, 再就是xfire-all-1.2.6.jar, 另外包含-1.5.1.jar,甚至还有--1.0.4.jar。
开发步骤:1.创建工程
将文件菜单选项中的新建, 选择为Java, 命名为Demo, 接着一路点击下一步, 最后, 新建一个名为com.demo的包, 在这个包里面创建两个文件, 其中一个是服务端接口文件也就是将已有的内容直接复制粘贴过来的那个.java文件, 另一个是测试文件Test.java, 它的代码如下:
View Code
1 package com.demo.client; 2 import org.codehaus.xfire.client.XFireProxyFactory; 3 import org.codehaus.xfire.service.Service; 4 import org.codehaus.xfire.service.binding.ObjectServiceFactory; 5 6 public class Test { 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12 String serviceUrl = "http://localhost:8080/Demo/services/MyService"; 13 Service serviceModel = new ObjectServiceFactory().create(IMyService.class, null, "http://localhost:8080/Demo/services/MyService?wsdl", null); 14 XFireProxyFactory serviceFactory = new XFireProxyFactory(); 15 try{ 16 IMyService service = (IMyService)serviceFactory.create(serviceModel,serviceUrl); 17 String hello = service.example("hello"); 18 System.out.println(hello); 19 }catch(Exception e){ 20 e.printStackTrace(); 21 } 22 } 23 }