jetty7.4.5 内嵌xfire

package com.lqy.test;

import javax.servlet.Servlet;

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.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.webapp.Configuration;
import org.eclipse.jetty.webapp.WebAppContext;

public class JettyService { 
   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("/service");    
 
       webApp.setConfigurations(new Configuration[0]);  
       //加载XFireServlet  
       webApp.addServlet((Class<? extends Servlet>) XFireServlet.class, "/*");    
        
       Server server = new Server();    
       QueuedThreadPool threadPool = new QueuedThreadPool();  
       //设置线程池  
       threadPool.setMaxThreads(100);    
       server.setThreadPool(threadPool);  
       //设置连接参数  
       Connector connector = new SelectChannelConnector(); 
       // 设置监听端口  
       connector.setPort(8000);    
       server.setConnectors(new Connector[] { connector });    
       //发布webapp  
       server.setHandler(webApp);    
       server.setStopAtShutdown(true);    
       server.setSendServerVersion(true);  
       server.start();    
       server.join();  
   } 
 
   public static void main(String[] args){ 
       try { 
       JettyService.start(); 
    } catch (Exception e) { 
        // TODO Auto-generated catch block  
        e.printStackTrace(); 
    } 
   } 
}

package com.lqy.test;

public interface HelloService {
public void say();
}
package com.lqy.test;

public class HelloServiceImpl implements HelloService{

@Override
public void say() {
System.out.println("hello");

}

}

测试:
打开ie浏览器, 在地址栏输入http://localhost:8000/service/
就可以看到熟悉的webservice生成wsdl画面了。

猜你喜欢

转载自lliiuu800.iteye.com/blog/1422510