关于XFire的集合映射:这里使用了JDK5.0提供的 新特性中的泛型机制 ,所以不需要<InterfaceName>.aegis.xml文件
????????????????????????????? 如果您使用的是JDK4,那么就需要配置<InterfaceName>.aegis.xml文件,相关资料请找Google老师
交待一下我的开发环境:MyEclipse6.5 、Tomcat-6.0.10、JDK1.5.0_08、XFire-1.2.6
如果对WebServics还不是很了解,请参阅我之前写过的一篇文章——What is WebServices
MyEclipse6.5自身便提供了对XFire的支持,所以我们可以直接创建一个Web Service Project
创建步骤——略。网上有很多,希望勤快的您能够自行查阅
下面展示的是WebServices服务端的全部代码 。代码已亲测,全部通过
其中包含了使用XFire处理简单对象的传递、对象的传递、List的传递
首先是web.xml文件
[xhtml]
view plain
copy
print
?
- <?xmlversion="1.0"encoding="UTF-8"?>?
- <web-app xmlns="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">?
- ??? <servlet>?
- ??????? <servlet-name>XFireServlet</servlet-name>?
- ??????? <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>?
- ??? </servlet>?
- ??? <servlet-mapping>?
- ??????? <servlet-name>XFireServlet</servlet-name>?
- ??????? <url-pattern>/services/*</url-pattern>?
- ??? </servlet-mapping>?
- </web-app>?
- ?
- ?
- ?
- ?
然后是services.xml文件
[xhtml]
view plain
copy
print
?
- <?xmlversion="1.0"encoding="UTF-8"?>?
- ?
- ?
- ?
- ?
- ?
- <beansxmlns="http://xfire.codehaus.org/config/1.0">?
- ??? ?
- ??? ?
- ??? ?
- ??? ?
- ??? <service>?
- ??????? ?
- ??????? ?
- ??????? ?
- ??????? ?
- ??????? <name>XFireServer</name>?
- ?????????
- ??????? ?
- ??????? ?
- ??????? <namespace>http://www.jadyer.com/XFireDemo</namespace>?
- ?????????
- ??????? ?
- ??????? ?
- ??????? ?
- ??????? ?
- ??????? <serviceClass>com.jadyer.server.HelloService</serviceClass>?
- ?????????
- ??????? ?
- ??????? ?
- ??????? ?
- ??????? <implementationClass>com.jadyer.server.HelloServiceImpl</implementationClass>?
- ??? </service>?
- </beans>?
接着是暴露成Web服务的接口类
[java]
view plain
copy
print
?
- package com.jadyer.server;?
- import java.util.List;?
- import com.jadyer.model.Person;?
- import com.jadyer.model.User;?
-
-
- ?
- public interface HelloService {?
- ??? public String sayHello(String name);?
- ??? public Person getPerson(User u);?
- ??? public List<Person> getPersonList(Integer age,String name);?
- }?
然后是暴露成Web服务的接口的实现类
[java]
view plain
copy
print
?
- package com.jadyer.server;?
- import java.util.ArrayList;?
- import java.util.List;?
- import com.jadyer.model.Person;?
- import com.jadyer.model.User;?
-
-
-
-
- ?
- public class HelloServiceImplimplements HelloService {?
- ?????
- ??? ?
- ??? public HelloServiceImpl(){}?
- ??? public String sayHello(String name) {?
- ??????? if(null==name){?
- ??????????? return "Hello,World";?
- ??????? }else{?
- ??????????? return "Hello," + name;?
- ??????? }?
- ??? }?
- ??? public Person getPerson(User u) {?
- ??????? Person p = new Person();?
- ??????? p.setAge(24);?
- ??????? p.setName(u.getName());?
- ??????? return p;?
- ??? }?
- ??? public List<Person> getPersonList(Integer age,String name) {?
- ??????? Person p = new Person();?
- ??????? p.setAge(age);?
- ??????? p.setName(name);?
- ??????? List<Person> list = new ArrayList<Person>();?
- ??????? list.add(p);?
- ??????? return list;?
- ??? }?
- }?
最后再把两个POJO类补充上
[java]
view plain
copy
print
?
- package com.jadyer.model;?
- public class User {?
- ??? private String name;?
- ??? ?
- }?
-
-
- ?
- package com.jadyer.model;?
- public class Person {?
- ??? private Integer age;?
- ??? private String name;?
- ??? ?
- }?
关于相应的客户端的开发,请参考我的下一篇文章——在XFire中创建WebService客户端的三种常用方式
?
转载地址:http://www.voidcn.com/article/p-fiqvbwho-baw.html