XFire创建WebService实例

XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成。那么XFire怎么创建WebService,下面yjbys小编为大家分享XFire创建WebService简单实例:

XFire创建WebService实例

  一. 使用XFire发布WebService

1. 创建service接口

Java代码

1. package ice;

2. import ;

3.

4. public interface IHelloService {

5. public String sayHello(String name);

6. public User getUser(User user);

7. }

8. }

2.创建Service接口的实现类

Java代码

1. package ice;

2. import ;

3. public class HelloService implements IHelloService{

4. public String sayHello(String name){

5. return "Hello, "+name;

6. }

7. public User getUser(User user) {

8. User userNew = new User();

9. d("new:"+d());

10. ame("new:"+ame());

11. return userNew;

12. }

13.}

Java代码

1. package ;

2. public class User {

3. private String id;

4. private String name;

5. public String getId() {

6. return id;

7. }

8. public void setId(String id) {

9. = id;

10. }

11. public String getName() {

12. return name;

13. }

14. public void setName(String name) {

15. = name;

16. }

17.}

3.在文件中进行XFire拦截配置,可参照网提供的sample。

Xml代码

1.

2.<web-app version="2.4" xmlns=""

3. xmlns:xsi=""

4. xsi:schemaLocation="

5. _2_">

6.

7.

8.XFireServlet

9.

10. eConfigurableServlet

11.

12.

13.

14.XFireServlet

15./servlet/XFireServlet/*

16.

17.

18.XFireServlet

19./services/*

20.

21.

4.在class目录下建立META-INF目录,如(META-INF>xifre->),

在文件中进行webservice服务的发布,可参照网提供的`sample。

Xml代码

1.

2.

3.

4.HelloService

5.loService

6.oService

7.

8.

5.将xfire的Jar包和相关依赖包拷到系统应用中,在Tomcat下部署应用。

启动tomcat后访问服务(需在应用后加上/services,webservice才会进行拦截):

例:http://localhost:8080/ws2/services。(IE下有时无法显示列表,可用其它浏览器显示或指定接口名称)

界面如下:

点击后查看详细的wsdl文档,不同的浏览器下访问会有区别,展示效果不一致。

  二.建立XFire客户端进行调用

1.本地客户端调用,与webservice服务在同一应用。

Java代码

1. package nt;

2.

3. import ormedURLException;

4. import eFactory;

5. import eProxyFactory;

6. import ice;

7. import ctServiceFactory;

8. import loService;

9. import ;

10.

ic class ClientTest {

12. public static void main(String args[]) throws MalformedURLException {

13. Service service = new ObjectServiceFactory()te(s);

14. XFireProxyFactory factory = new XFireProxyFactory(XFireFactory

15. nstance()Fire());

16. String url = "http://localhost:8080/ws2/services/HelloService";

17. IHelloService helloService = (IHelloService) te(service,url);

18. tln(ello("张三"));

19. User user = new User();

20. ame("张三");

21. tln(ser(user)ame());

22. }

23.}

执行结果如下:

Java代码

1. Hello, 张三

2. new:张三

2. 利用XFire创建文件生成客户端代码调用webservice服务

2.1在src目录下创建erties文件,配置如下:

Java代码

1. =${basedir}

2. =D:/myspace/ws2/WebRoot/WEB-INF/lib

3. =http://localhost:8080/ws2/services/HelloService?wsdl

2.2在src目录下创建文件,配置如下:

Xml代码

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.<taskdef name="wsgen" classname="nTask"

12. classpathref="project-classpath" />

13.<wsgen outputDirectory="${}" wsdl="${}"

14. package="nt" overwrite="true"/>

15.

16.

用ant构建生成代码,生成后的目录如下:

2.3编写客户端代码进行调用

Java代码

1. package nt;

2. import oServiceClient;

3. import oServicePortType;

4. import ctFactory;

5. import ;

6.

7. public class HelloServiceTest {

8.

9. public static void main(String args[]){

10. HelloServiceClient service = new HelloServiceClient();

11. HelloServicePortType portType = elloServiceHttpPort();

12. tln(ello("张三"));

13.

14. ObjectFactory factory = new ObjectFactory();

15. User user = teUser();

16. ame(teUserName("张三"));

17. tln(ser(user)ame()alue());

18. }

19.}

执行结果如下:

Java代码

1. Hello, 张三

2. new:张三