Openfire下WebServer實現

最近由於工作需要研究了Openfire的WebServer,下面只是一個簡單demo.

1. 使用的jar文件:



2. 實現一個WebServer接口:OpenfireWebService.java

public interface OpenfireWebService {

//	public String sayHello(String name);
//
//	public void sendServerMessage(String domain, String toId, String content);
//
//	public int sendNoticeMessage(String domain, String fromId, String toId, String content);
	
	public int userLong(String username, String psd);
	
	public String getFriends(String username);
	
}

3. OpenfireWebService.java的接口實現
public class OpenfireWebServiceImpl implements OpenfireWebService {
	
	/**
	 * WEB登錄
	 * @param username
	 * @param psd
	 * @return
	 * @see com.webservice.plugin.server.OpenfireWebService#userLong(java.lang.String, java.lang.String)
	 */
	public int userLong(String username, String psd) {
		DoolBellDao dao = new DoolBellDao();
		String myPsd = dao.getUserPSD(username);
		//ofproperty表中passwordKey對應的值
		Blowfish bs = new Blowfish("VRCnq2HmaBqrzdf");
        String dPsd = bs.decryptString(myPsd);
        if (psd.equals(dPsd)) {
        	return 0;  
        }
        return 1;  
	}
	
	public String getFriends(String username) {
		String val = "";
		List<String> list = new ArrayList<String>();
		DoolBellDao dao = new DoolBellDao();
		list = dao.getFriends(username);
		if (list != null && list.size() > 0) {
			val = list.toString();
		}
		return val;
	}  
}

4. 添加插件,定義訪問端口:

public class WSDoolBellPlugin implements Plugin {
	
	private CamaPacketInterceptor cpi;
	
	private XMPPServer server;

	@Override
	public void initializePlugin(PluginManager manager, File pluginDirectory) {
		server = XMPPServer.getInstance();        
		System.out.println("-------------------------------------------");
		start();
		
//		cpi = new CamaPacketInterceptor();  
//	    InterceptorManager.getInstance().addInterceptor(cpi);  
//	    start();  

	}


	@Override
	public void destroyPlugin() {
	}
	
	private boolean start()   
    {     
        ObjectServiceFactory serviceFactory = new ObjectServiceFactory();     
        Service service = serviceFactory.create(OpenfireWebService.class);     
        service.setInvoker(new BeanInvoker(new OpenfireWebServiceImpl()));     
        XFire xfire = XFireFactory.newInstance().getXFire();     
        xfire.getServiceRegistry().register(service);  
        XFireHttpServer s = new XFireHttpServer();     
        s.setPort(8191);     
        try {     
            s.start();     
        } catch (Exception e) {     
            return false;     
        }     
        return  true;     
    }  

}

5.plugin.xml:

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
	<!-- Main plugin class  -->
	<class>com.webservice.plugin.server.WSDoolBellPlugin</class>
	<!-- Plugin meta-data -->
	<name>WSDoolBellPlugin</name>
	<description>This is muc doorbell plugin.</description>
	<author>wsdoorbell</author>
 
	<version>1.0</version>
	<date>4/4/2014</date>
	<url>http://localhost:9090/openfire/plugins.jsp</url>
	<minServerVersion>3.9.1</minServerVersion>
	<licenseType>gpl</licenseType>
 
	<adminconsole>    
    </adminconsole>
</plugin>

6. 地址訪問:http://127.0.0.1:8191/OpenfireWebService?wsdl


源碼下載地址: http://download.csdn.net/detail/zxbcome/7663455

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章