先看效果,再看实现!

其实很简单,直接上代码
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();
}
}
本文详细介绍了如何使用Jetty和XFire将WebService应用集成并发布,包括定义接口、实现类、配置Jetty服务器等关键步骤,旨在帮助开发者快速搭建和部署Web服务。

3900

被折叠的 条评论
为什么被折叠?



