jetty嵌入式发布XFire实现的webservice

本文详细介绍了如何使用Jetty和XFire将WebService应用集成并发布,包括定义接口、实现类、配置Jetty服务器等关键步骤,旨在帮助开发者快速搭建和部署Web服务。

先看效果,再看实现!

 其实很简单,直接上代码

1、现定义webservice应用的接口

public interface HelloService {
	public String Hello(String name);
}

2、定义实现类

	public String Hello(String name) {
		if (null == name){
			return "Hello Guest";
		}
		return "Hello " + name;
	}


3、用jetty集成发布,这也是精髓所在!

import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.service.invoker.BeanInvoker;
import org.codehaus.xfire.transport.http.XFireServlet;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.Configuration;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.resource.Resource;
import org.mortbay.thread.BoundedThreadPool;
public class server {
   public static void start() throws Exception{
	   
       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);
       //无web.xml的WebAppContext
       WebAppContext webApp = new WebAppContext();   
       webApp.setContextPath("/");   
       webApp.setBaseResource(Resource.newClassPathResource(""));   
       webApp.setConfigurations(new Configuration[0]); 
       //加载XFireServlet
       webApp.addServlet(XFireServlet.class, "/*");   
       
	   
       Server server = new Server();   
       BoundedThreadPool threadPool = new BoundedThreadPool(); 
       //设置线程池
       threadPool.setMaxThreads(100);   
       server.setThreadPool(threadPool); 
       //设置连接参数
       Connector connector = new SelectChannelConnector();
       // 设置监听端口
       connector.setPort(8000);   
       server.setConnectors(new Connector[] { connector });   
       //发布webapp
       server.addHandler(webApp);   
       server.setStopAtShutdown(true);   
       server.setSendServerVersion(true); 
       server.start();   
       server.join(); 
   }

   public static void main(String[] args){
	   try {
		server.start();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
   }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值