相信大家对XFire不陌生吧?XFire是下一代的java SOAP框架。XFire提供了非常方便的API,使用这些API可以开发面向服务(SOA)的程序。它支持各种标准,性能优良(基于低内存的STAX模型)。他的功能很强大,下面和大家介绍下:
1支持多个重要的Web Service标准,包括SOAP、WSDL、WS-I Basic Profile、WSAddressing
2WS-Security等.
3 高性能的SOAP栈。
4可选的绑定(binding)方式,如POJO、XMLBeansJAXB1.1、JAXB2.0、Castor和JiBX
等。
5 支持JSR181 API。
6 多种传输方式,如HTTP、JMS、XMPP、In-JVM等。
7 灵活的接口。
8 支持多个容器,如Spring、Pico、Plexus、Loom。
9 支持JBI。
这么强大的框架,看了是不是有种冲动呢?记得自己首次接触的时候就是非常冲动的,不好意识跑题了!下面说说嵌入XFire服务的实现吧!
用到C/S架构的应用程序中,可以在桌面应用程序中发布
Web Services。XFire可以通过内置的Jetty作为内部的Web服务器进行发布Web Services,所
以确保你的类路径中包含了Jetty。
在eclipse中新建一个Java工程,这要增加一个
HelloService接口和实现类HelloServiceImpl。
HelloService.java
package com.googlepages.smallnest.facet;
public interface HelloService
{
public String Hello(String name);
}
HelloServiceImpl.java
package com.googlepages.smallnest.facet;
13
嵌入XFire服务
public class HelloServiceImpl implements HelloService
{
public String Hello(String name)
{
if (null == name)
{
return "Hello Guest";
}
return "Hello " + name;
}
}
现在,你可以新建一个EmbeddedServer类来模拟一个Web服务器。
package com.googlepages.smallnest.facet;
import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.server.http.XFireHttpServer;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.service.invoker.BeanInvoker;
public class EmbeddedServer
{
XFireHttpServer server;
public boolean start()
{
ObjectServiceFactory serviceFactory = new ObjectServiceFactory();
Service service = serviceFactory.create(HelloService.class);
service.setInvoker(new BeanInvoker(new HelloServiceImpl()));
//注册服务
XFire xfire = XFireFactory.newInstance().getXFire();
xfire.getServiceRegistry().register(service);
//启动服务器
14
嵌入XFire服务
server = new XFireHttpServer();
server.setPort(8191);
try
{
server.start();
}
catch (Exception e)
{
return false;
}
return true;
}
public static void main(String[] args)
{
EmbeddedServer server = new EmbeddedServer();
erver.start();
}
}
在这个类中,start方法启动服务,stop方法停止服务。首先得到一个
ObjectServiceFactory 对象,通过这个对象创建一个服务HelloService,并指定访问这个服务
时实际要调用的实现类。接着注册了这个服务。启动内置的服务器,并将端口设置为
8191。运行这个程序,打开浏览器,访问http://localhost:8191/,可以看到下面的界面。
转载请注明出处: 程序员之家 http://www.sunxin.org/