最近由於工作需要研究了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