webservice之xfire服务器端开发

XFire确实比Axis简单了不少

方法一,使用向导步骤如下:


1. File --> new --> Web Service Project (Optional Maven Support) -->
   输入xfireServer-->选择XFire-->next-->选择所需jar包(第一二个就行了)

图解:

   




2. 定义一个实体类Person,一个接口PersonService,一个PersonService的实现类PersonServiceImpl

Person代码:

package com.eagle.bean;

import java.io.Serializable;
import java.util.Date;

/**
*TODO 实体类
*date:Jan 14, 2010
*time:2:29:49 PM
*author:wxj
*email:jxauwxj@126.com
*/
public class Person implements Serializable{

private int id;

private String name;

private int age;

private Date birthday;

public int getId() {
   return id;
}

public void setId(int id) {
   this.id = id;
}

public String getName() {
   return name;
}

public void setName(String name) {
   this.name = name;
}

public int getAge() {
   return age;
}

public void setAge(int age) {
   this.age = age;
}

public Date getBirthday() {
   return birthday;
}

public void setBirthday(Date birthday) {
   this.birthday = birthday;
}

public String toString(){
   return "id:" + id + ", name:" + name + ", age:" + age + "birthday: " + birthday;
}
}

PersonService代码:

package com.eagle.service;

import java.util.Date;
import java.util.List;

import com.eagle.bean.Person;

/**
*TODO web服务接口
*date:Jan 14, 2010
*time:2:29:49 PM
*author:wxj
*email:jxauwxj@126.com
*/
public interface PersonService {

/**
* 返回一个String类型
* @param name
* @return
*/
public String sayHello(String name);

/**
* 返回一个int类型
* @return
*/
public int getAge();

/**
* 返回一个Date类型
* @return
*/
public Date getBirthday();

/**
* 返回一个自定义类型
* @return
*/
public Person getPerson();

/**
* 返回一个复杂类型
* @return
*/
public List<Person> getPersons();

}

PersonServiceImpl代码:

package com.eagle.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.eagle.bean.Person;

/**
*TODO web服务接口实现类
*date:Jan 14, 2010
*time:2:29:49 PM
*author:wxj
*email:jxauwxj@126.com
*/
public class PersonServiceImpl implements PersonService{

public int getAge() {
   return (int) (Math.random() * 100);
}

public Date getBirthday() {
   return new Date();
}

public Person getPerson() {
   Person person = new Person();
   person.setId(1);
   person.setAge(60);
   person.setName("china");
   person.setBirthday(new Date());
   return person;
}

public List<Person> getPersons() {
   List<Person> persons = new ArrayList<Person>();
  
   Person person1 = new Person();
   person1.setId(1);
   person1.setAge(60);
   person1.setName("ls");
   person1.setBirthday(new Date());
   persons.add(person1);
  
   Person person2 = new Person();
   person2.setId(2);
   person2.setAge(50);
   person2.setName("bj");
   person2.setBirthday(new Date());
   persons.add(person2);
  
   Person person3 = new Person();
   person3.setId(3);
   person3.setAge(56);
   person3.setName("ww");
   person3.setBirthday(new Date());
   persons.add(person3);
  
   return persons;
}

public String sayHello(String name) {
   return "hello," + name + ",welcome to xfire";
}

}

3. 注册web 服务,File --> new --> other --> MyEclipse --> Web Services --> 选择XFire,选择
   create web service from Java bean(Bottom-up scenario) --> next --> 输入服务名
  --> 选择Service interface,Service impl. class --> fininsh

在services.xml中生成:

<service>
   <name>personService</name>
   <serviceClass>com.eagle.service.PersonService</serviceClass>
   <implementationClass>
    com.eagle.service.PersonServiceImpl
   </implementationClass>
   <style>wrapped</style>
   <use>literal</use>
   <scope>application</scope>
</service>

4. 部署到tomcat,并启动服务器,在浏览器输入http://localhost:9999/xfire/services,出现
Available Services:

   *personService [wsdl]

   点击其可看到描述服务的xml,复制其url,可以MyEclipse中的Web Service Explorer中测试


-----------------------------------------------------------------

也可以不使用向导,

方法二:步骤如下:

1.创建一个普通的web工程,加入xfire相关jar包


 2.在web.xml中加入
          <servlet>
     <servlet-name>XFireServlet</servlet-name>
     <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
     <load-on-startup>0</load-on-startup>
          </servlet>
   <servlet-mapping>
      <servlet-name>XFireServlet</servlet-name>
      <url-pattern>/services/*</url-pattern>
   </servlet-mapping>


3.在src下新建META-INF/xfire/文件夹,再新建一个services.xml
放在src/META-INF/xfire/文件夹下


4.写一个接口HelloService,和一个接口的实现类HelloServiceImpl


5.注册web服务,在services.xml中加入
<service>
     <name>helloService</name>
     <serviceClass>com.eagle.service.HelloService</serviceClass>
   <implementationClass>
       com.eagle.service.HelloServiceImpl
     </implementationClass>
     <style>wrapped</style>
     <use>literal</use>
     <scope>application</scope>
</service>


6.访问:http://localhost:9999/xfiretest/services即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值