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画面了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值