RestEasy(restful风格的)WebService

来源:互联网 发布:神级淘宝店系统 编辑:程序博客网 时间:2024/05/16 08:54

CsosInfo.java

package com.topsec.tsm.sim.rest.server.csos;



import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;


import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.CookieParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.NewCookie;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;


import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


import com.topsec.tal.base.util.StringUtil;
import com.topsec.tal.base.web.SpringContextServlet;
import com.topsec.tsm.base.audit.AuditRecord;
import com.topsec.tsm.base.type.IpAddress;
import com.topsec.tsm.base.type.Severity;
import com.topsec.tsm.resource.AuditCategoryDefinition;
import com.topsec.tsm.sim.datasource.SimDatasource;
import com.topsec.tsm.sim.node.service.NodeDeployService;
import com.topsec.tsm.sim.node.service.NodeMgrFacade;
import com.topsec.tsm.sim.node.service.NodeMgrFacadeImpl;
import com.topsec.tsm.sim.rest.CsosTask;
import com.topsec.tsm.sim.rest.TaskInfo;
import com.topsec.tsm.sim.rest.service.CsosTaskService;
import com.topsec.tsm.sim.rest.util.CsosUtil;
import com.topsec.tsm.sim.util.AuditLogFacade;
import com.topsec.tsm.ui.dataSource.service.DataSourceService;
import com.topsec.tsm.ui.framework.util.FacadeUtil;
import com.topsec.tsm.ui.sim.sysman.licence.service.LicenceServiceUtil;


@Path("/")
public class CsosInfo {
/** 未关联*/
private static final String UNASSOCIATED="0";
/** 启动任务*/
private static final String TASK_START="1";
/** 停止任务*/
private static final String TASK_STOP ="-1";
/** 取消任务*/
private static final String TASK_DELETE="-2";


private DataSourceService dataSourceService;
private CsosTaskService csosTaskService;
private NodeDeployService nodeDeployService;
private NodeMgrFacade nodeMgrFacade;
public CsosQueryTask task;
private static final Logger log = LoggerFactory.getLogger(CsosInfo.class);

/**
* 根据条件获取统计信息
* @param request
* @param id 客户端sessionid
* @return
*/
@Path("/report/condition")
@POST
@Produces("application/xml;charset=UTF-8")
public Response getData(@Context HttpServletRequest request,@CookieParam("sessionid") String id){
// log.info("进入统计数据查询接口...");
ResponseBuilder build =Response.status(200);
build.header("Content-Type","text/html;charset=UTF-8");
boolean isLogin = CsosSecurityAuth.getInstance().isLogin(id);
if(!isLogin){
String msg = CsosUtil.getInstance().errorMsg("Auth","访问 统计数据 接口前未登陆!");
log.error(msg);
           return build.entity(msg).build();
}
String xml = null;
String result ="";
String type="";
Map<String,Object> map = new HashMap<String,Object>();
try {
xml = CsosUtil.getStrFromInputStream(request.getInputStream());
if(xml!=null){
 /*<Task>
<RequestID>xxx</RequestID>
<EngineName>webxxx</EngineName>
<Report type="xx" requesttime="2013-11-04 10:10:10” >
   <Start_Time>2013-11-04 10:10:10</Start_Time>
   <End_Time>2013-11-04 12:10:10</End_Time>
   <Topic name="xxx">
      <SubTopic name="yyyy"/>
   </Topic>
</Report >
</Task> */

log.info("统计数据查询参数:{}",xml);
Document document = DocumentHelper.parseText(xml);
Element root = document.getRootElement();
map.put("requestID", root.element("RequestID").getTextTrim());
map.put("engineName", root.element("EngineName").getTextTrim());
Element report = root.element("Report");
type = report.attributeValue("type");
map.put("type", type);
map.put("sTime", report.element("Start_Time").getTextTrim());
map.put("eTime", report.element("End_Time").getTextTrim());
Element topic = report.element("Topic");
map.put("topic", topic.attributeValue("name"));
Element subTopic = topic.element("SubTopic");
String sub_topic =null;
if(subTopic!=null){
sub_topic =subTopic.attributeValue("name");
}
map.put("subTopic", sub_topic);
Thread task = new Thread(new CsosQueryTask(map));
task.start() ;
}
result = "<Result value=\"Success\"/>";
} catch (Exception e) {
result = CsosUtil.getInstance().errorMsg("Cmd","解析csos "+type+"接口 查询条件失败!");
log.error(result);
}
return build.entity(result).build();
}
/**
* 任务下发
* @param request
* @param id  客户端sessionid
* @return
*/
@Path("/task")
@POST
@Produces("application/xml;charset=UTF-8")
public Response task(@Context HttpServletRequest request,@CookieParam("sessionid") String id){
ResponseBuilder build=Response.status(200);
build.header("Content-Type","text/xml;charset=UTF-8");
boolean isLogin = CsosSecurityAuth.getInstance().isLogin(id);
if(!isLogin){
String msg = CsosUtil.getInstance().errorMsg("Auth","访问 任务下发 接口前未登陆!");
return build.entity(msg).build();
}
csosTaskService = getCsosTaskService();
StringBuffer result = new StringBuffer() ;
try{
String context = CsosUtil.getStrFromInputStream(request.getInputStream());

log.info("任务下发参数:{}",context);

CsosTask task = this.parseXML2Task(context);
CsosTask tsk = csosTaskService.getCsosTaskByTaskId(task.getTaskId());
Serializable obj = null;
if(tsk==null){
obj =  csosTaskService.saveCsosTask(task);
}
log.info("下发任务保存返回结果:{}",obj);
result.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
if(obj!=null||tsk!=null){
int  taskId =  (Integer) obj;
if(taskId>0||tsk!=null){
result.append("<Result value=\"Success\"/>");
}
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","下发任务失败!"));
}
}catch(Exception e){
result.append(CsosUtil.getInstance().errorMsg("Cmd","下发任务发生异常!"));
}
return build.entity(result.toString()).build() ;
}

/**
* 取消任务
* @param request
* @param taskId 任务Id
* @param id 客户端sessionid
* @return
*/
@Path("/task/Del/{taskId}")
@POST
@Produces("application/xml;charset=UTF-8")
public Response deleteTask(@Context HttpServletRequest request,@PathParam("taskId")String taskId,@CookieParam("sessionid") String id){
ResponseBuilder build=Response.status(200);
build.header("Content-Type","text/xml;charset=UTF-8");
boolean isLogin = CsosSecurityAuth.getInstance().isLogin(id);
if(!isLogin){
String msg = CsosUtil.getInstance().errorMsg("Auth","访问 任务取消  接口前未登陆!");
           return build.entity(msg).build();
}
dataSourceService = getDataSourceService();
csosTaskService = getCsosTaskService();
nodeDeployService = getNodeDeployService();
nodeMgrFacade = this.getNodeMgrFacade(request);
CsosTask task = csosTaskService.getCsosTaskByTaskId(taskId);
StringBuffer result = new StringBuffer() ;
result.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
if(task!=null){
SimDatasource ds = task.getDataSource();
if(ds!=null){
try{
int licenceNum = 0;
Map licenceMap=LicenceServiceUtil.getInstance().getLicenseInfo();
String license_valid=(String)licenceMap.get("LICENSE_VALID");
if(license_valid==null||license_valid.equals("0")){
licenceNum = 0;
log.info("Licence文件无效,任何修改将不被允许!");
} else {
licenceNum = Integer.valueOf((String)licenceMap.get("TAL_LOGSOURCE_NUM"));
}
Integer datasourceCount=dataSourceService.countTotal(DataSourceService.CMD_START,DataSourceService.TYPE_OTHER,DataSourceService.DATASOURCE_TYPE_LOG);
if(datasourceCount.compareTo(licenceNum)<0){
dataSourceService.deleteSimDatasource(ds.getResourceId());
NodeMgrFacadeImpl.nodeTopoMap.remove(ds.getAuditorNodeId());
nodeDeployService.deleteDataSource(ds.getNodeId(), ds.getComponentId(), ds.getResourceId());
String temp = "删除日志源,名称:"+ds.getResourceName()+",IP:"+ds.getDeviceIp()
+",类型:"+ds.getSecurityObjectType()+",绑定节点:"+ds.getNodeId()+",状态:"+ds.getAvailable();
toLog(AuditCategoryDefinition.SYS_DELETE,"删除日志源",temp,"Csos 任务下发",true,Severity.HIGH);
log.info(temp);
task.setStatus(UNASSOCIATED);
task.setDataSource(null);
csosTaskService.updateCsosTask(task);
result.append("<Result value=\"Success\"/>");
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","取消任务时,taskId为: "+taskId+"的任务 关联的日志源Licence文件无效,不能进行任何操作!"));
}
}catch(Exception e){
log.error("csos任务下发  取消任务异常:", e);
result.append(CsosUtil.getInstance().errorMsg("Cmd","取消任务时,taskId为: "+taskId+"的任务 发生异常!"));
}
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","取消任务时,taskId为: "+taskId+"的任务未绑定日志源!"));
}
}
return build.entity(result.toString()).build() ;
}

/**
* 启动任务
* @param request
* @param taskId 任务Id
* @param id 客户端sessionid
* @return
*/
@Path("/task/Start/{taskId}")
@POST
@Produces("application/xml;charset=UTF-8")
public Response startTask(@Context HttpServletRequest request,@PathParam("taskId")String taskId,@CookieParam("sessionid") String id){
ResponseBuilder build=Response.status(200);
build.header("Content-Type","text/xml;charset=UTF-8");
boolean isLogin = CsosSecurityAuth.getInstance().isLogin(id);
if(!isLogin){
String msg = CsosUtil.getInstance().errorMsg("Auth","访问 任务启动  接口前未登陆!");
           return build.entity(msg).build();
}
dataSourceService = getDataSourceService();
csosTaskService = getCsosTaskService();
nodeDeployService = getNodeDeployService();
CsosTask task = csosTaskService.getCsosTaskByTaskId(taskId);
StringBuffer result = new StringBuffer() ;
result.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
if(task!=null){
SimDatasource ds = task.getDataSource();
if(ds!=null){
try{
int licenceNum = 0;
Map licenceMap=LicenceServiceUtil.getInstance().getLicenseInfo();
String license_valid=(String)licenceMap.get("LICENSE_VALID");
if(license_valid==null||license_valid.equals("0")){
licenceNum = 0;
log.info("Licence文件无效,任何修改将不被允许!");
} else {
licenceNum = Integer.valueOf((String)licenceMap.get("TAL_LOGSOURCE_NUM"));
}
Integer datasourceCount=dataSourceService.countTotal(DataSourceService.CMD_START,DataSourceService.TYPE_OTHER,DataSourceService.DATASOURCE_TYPE_LOG);
if(datasourceCount.compareTo(licenceNum)<0){
ds.setAvailable(1L);
dataSourceService.updateSimDatasource(ds);
toLog(AuditCategoryDefinition.SYS_START,"启用日志源","启用日志源,名称:"+ds.getResourceName()+",IP:"+ds.getDeviceIp()
+",类型:"+ds.getSecurityObjectType()+",绑定节点:"+ds.getNodeId()+",状态:"+ds.getAvailable(),"Csos 任务下发",true,Severity.LOW);
nodeDeployService.updateDataSource(ds.getNodeId(), ds.getComponentId(), ds);
task.setStatus(TASK_START);
csosTaskService.updateCsosTask(task);
result.append("<Result value=\"Success\"/>");
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","启动任务时,taskId为: "+taskId+"的任务 关联的日志源Licence文件无效,不能进行任何操作!"));
}
}catch(Exception e){
log.error("csos任务下发 启动任务异常:", e);
result.append(CsosUtil.getInstance().errorMsg("Cmd","启动任务时,taskId为: "+taskId+"的任务 发生异常!"));
}
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","启动任务时,taskId为: "+taskId+"的任务未绑定日志源!"));
}
}
return build.entity(result.toString()).build() ;
}

/**
* 停止任务
* @param request
* @param taskId 任务Id
* @param id 客户端sessionid
* @return
*/
@Path("/task/Stop/{taskId}")
@POST
@Produces("application/xml;charset=UTF-8")
public Response stopTask(@Context HttpServletRequest request,@PathParam("taskId")String taskId,@CookieParam("sessionid") String id){
ResponseBuilder build=Response.status(200);
build.header("Content-Type","text/xml;charset=UTF-8");
boolean isLogin = CsosSecurityAuth.getInstance().isLogin(id);
if(!isLogin){
String msg = CsosUtil.getInstance().errorMsg("Auth","访问 任务停止  接口前未登陆!");
           return build.entity(msg).build();
}
dataSourceService = getDataSourceService();
csosTaskService = getCsosTaskService();
nodeDeployService = getNodeDeployService();
StringBuffer result = new StringBuffer() ;
result.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
CsosTask task = csosTaskService.getCsosTaskByTaskId(taskId);
if(task!=null){
SimDatasource ds = task.getDataSource();
if(ds!=null){
try{
int licenceNum = 0;
Map licenceMap=LicenceServiceUtil.getInstance().getLicenseInfo();
String license_valid=(String)licenceMap.get("LICENSE_VALID");
if(license_valid==null||license_valid.equals("0")){
licenceNum = 0;
log.info("Licence文件无效,任何修改将不被允许!");
} else {
licenceNum = Integer.valueOf((String)licenceMap.get("TAL_LOGSOURCE_NUM"));
}
Integer datasourceCount=dataSourceService.countTotal(DataSourceService.CMD_START,DataSourceService.TYPE_OTHER,DataSourceService.DATASOURCE_TYPE_LOG);
if(datasourceCount.compareTo(licenceNum)<0){
ds.setAvailable(0L);
dataSourceService.updateSimDatasource(ds);
NodeMgrFacadeImpl.nodeTopoMap.remove(ds.getAuditorNodeId());
toLog(AuditCategoryDefinition.SYS_STOP,"禁用日志源","禁用日志源,名称:"+ds.getResourceName()+",IP:"+ds.getDeviceIp()
+",类型:"+ds.getSecurityObjectType()+",绑定节点:"+ds.getNodeId()+",状态:"+ds.getAvailable(),"Csos 任务下发",true,Severity.MEDIUM);
nodeDeployService.updateDataSource(ds.getNodeId(), ds.getComponentId(), ds);
task.setStatus(TASK_STOP);
csosTaskService.updateCsosTask(task);
result.append("<Result value=\"Success\"/>");
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","停止任务时,taskId为: "+taskId+"的任务 关联的日志源Licence文件无效,不能进行任何操作!"));
}
}catch(Exception e){
log.error("csos任务下发 停止任务异常:", e);
result.append(CsosUtil.getInstance().errorMsg("Cmd","停止任务时,taskId为: "+taskId+"的任务 发生异常!"));
}
}
}else{
result.append(CsosUtil.getInstance().errorMsg("Cmd","停止任务时,taskId为: "+taskId+"的任务未绑定日志源!"));
}
return build.entity(result.toString()).build() ;
}
/**
* 登录认证
* @param request
* @param id 服务端sessionid
* @return
*/
@Produces("application/xml;charset=UTF-8")
@POST
@Path("/auth")
public Response login(@Context HttpServletRequest request,@CookieParam("sessionid") String id){
// log.info("进入安全引擎服务调用");
ResponseBuilder build=Response.status(200);
build.header("Content-Type","text/html;charset=UTF-8");
String context ="";
String usr=null;
String pwd=null;
String date=null;
try {
String content =CsosUtil.getStrFromInputStream(request.getInputStream());
Document document = DocumentHelper.parseText(content);
Element root = document.getRootElement();
usr = root.element("Name").getTextTrim();
pwd = root.element("Password").getTextTrim();
date = root.element("Date").getTextTrim();
boolean isLogin = CsosSecurityAuth.getInstance().isLogin(id);
if(!isLogin){
isLogin= CsosSecurityAuth.getInstance().login(usr, pwd,date);
}
// log.info("用户名:{} 密码:{} 时间:{} 是否登录成功: {}",new Object[]{usr,pwd,date,isLogin});
if(isLogin){
Element result = DocumentHelper.createElement("Result");
result.addAttribute("value", "Success");
Element session = result.addElement("SessionId");
String sessionId = CsosSecurityAuth.getInstance().getSessionIdByName(usr) ;
session.addText(sessionId);
context = result.asXML();
build.cookie(new NewCookie("sessionid", sessionId)) ;
}else{
context = CsosUtil.getInstance().errorMsg("Auth","登陆任务时, 用户名或者密码有误!");
}
} catch (Exception e) {
log.info("用户名:{} 密码:{} 异常: {}",new Object[]{usr,pwd,e});
context = CsosUtil.getInstance().errorMsg("Auth","登陆任务时, 发生异常!");
}
return build.entity(context).build();
}


private CsosTask parseXML2Task(String xml){
 /*<Task>
<TaskID>100</TaskID>
<CustomID>500</CustomID>
<TaskInfo>
<AssetID>200</AssetID>
<HostType>Web</HostType>
<DestURL>http://192.168.72.169:8080/twm-web</DestURL>
</TaskInfo>
<TaskSLA>a</TaskSLA>
<CustomName>sunltTest</CustomName>
<NAME>WEB</NAME>
<DestIP>192.168.72.169</DestIP>
<DestPort>null</DestPort>
<Type>应用系统</Type>
</Task>
*/
CsosTask task = new CsosTask();
try{
Document document = DocumentHelper.parseText(xml);
Element root = document.getRootElement();
task.setTaskId(root.element("TaskID").getTextTrim());
task.setCustomId(root.element("CustomID").getTextTrim());
TaskInfo info = new TaskInfo();
info.setAssetId(StringUtil.toInteger(root.element("TaskInfo").element("AssetID").getTextTrim()));
info.setDeviceType(root.element("TaskInfo").element("HostType").getTextTrim());
info.setDestUrl(root.element("TaskInfo").element("DestURL").getTextTrim());
task.setTaskInfo(info);
task.setTaskSLA(root.element("TaskSLA").getTextTrim());
task.setCustomName(root.element("CustomName").getTextTrim());
task.setName(root.element("NAME").getTextTrim());
task.setDestAddress(root.element("DestIP").getTextTrim());
task.setDestPort(StringUtil.toInteger(root.element("DestPort").getTextTrim()));
   task.setType(root.element("Type").getTextTrim());
   task.setStatus("0");//未关联
//    log.info("TaskID: {} CustomID: {} AssetID: {} DestURL: {} TaskSLA: {} CustomName: {} NAME: {} DestIP: {} DestPort: {} Type: {}",new Object[]{task.getTaskId(),task.getTaskInfo().getAssetId(),task.getTaskInfo().getDestUrl(),task.getTaskSLA(),task.getCustomName(),task.getName(),task.getDestAddress(),task.getDestAddress(),task.getType()});
}catch(Exception e){
e.printStackTrace();
}
return task;
}


private void toLog(String cat, String name, String desc, String subject, boolean result, Severity severity) {
AuditRecord _log = AuditLogFacade.createConfigAuditLog();
_log.setBehavior(cat);
_log.setSecurityObjectName(name);
_log.setDescription(desc);
_log.setSubject(subject);
_log.setSubjectAddress(IpAddress.IPV4_LOCALHOST);
_log.setObjectAddress(IpAddress.IPV4_LOCALHOST);
_log.setSuccess(result);
_log.setSeverity(severity);
AuditLogFacade.send(_log);// 发送系统自审计日志
}

private DataSourceService getDataSourceService() {
if(this.dataSourceService==null){
this.dataSourceService= (DataSourceService) SpringContextServlet.springCtx.getBean("dataSourceService");
}
return this.dataSourceService;
}
private CsosTaskService getCsosTaskService(){
if(csosTaskService==null){
csosTaskService = (CsosTaskService) SpringContextServlet.springCtx.getBean("csosTaskService");
}
return csosTaskService;
}
private NodeDeployService getNodeDeployService(){
if(nodeDeployService==null){
nodeDeployService = (NodeDeployService) SpringContextServlet.springCtx.getBean("com.topsec.tsm.sim.node.service.NodeDeployService");
}
return nodeDeployService;
}
private NodeMgrFacade getNodeMgrFacade(HttpServletRequest request) {
if(this.nodeMgrFacade==null){
this.nodeMgrFacade=FacadeUtil.getNodeMgrFacade(request,null);
}
return this.nodeMgrFacade;
}
}


web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
   "http://java.sun.com/dtd/web-app_2_3.dtd">     
<web-app>
<display-name>Struts Example Application</display-name> 
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/applicationContext.xml,
/WEB-INF/spring/applicationContext-ibatis.xml,
/WEB-INF/spring/applicationContext-sim.xml
</param-value>
<description>for risk manager</description>
</context-param>

<!-- Resteasy Param -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/resteasy</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<!-- jmesa -->
<context-param>
<param-name>jmesaPreferencesLocation</param-name>
<param-value>/WEB-INF/jmesa/jmesa.properties</param-value>
</context-param>
<context-param>
<param-name>jmesaMessagesLocation</param-name>
<param-value>jmesaResourceBundle</param-value>
</context-param>

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>
com.topsec.tsm.ui.util.SecurityFilter
</filter-class>
<init-param>
<param-name>forwardPath</param-name>
<param-value>/login.do?action=logout</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>no</param-value>
</init-param>
</filter>


   <!-- Auth过滤器 -->
   <filter>
<filter-name>Auth filter</filter-name>
<filter-class>
com.topsec.tsm.security.AuthFilter
</filter-class>
<init-param>
<param-name>forwardPath</param-name>
<param-value>/login.do?action=logout</param-value>
</init-param>
</filter>

<!-- encoding filter -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>
com.topsec.tsm.ui.framework.web.EncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<!--  init-param>
<param-name>loginPage</param-name>
<param-value>/login.jsp</param-value>
</init-param>
<init-param>
<param-name>appLocal</param-name>
<param-value>agent</param-value>
</init-param>-->
</filter>


<!--url过滤器 -->
<filter-mapping>
<filter-name>SecurityFilter</filter-name>
<url-pattern>/sim-web</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>Auth filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

<!-- Resteasy listener -->
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<!-- Spring Listener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- blazeds for flex-->
<listener>
        <listener-class>flex.messaging.HttpFlexSession</listener-class>
    </listener> 
<!-- blazed Servlet -->
    <servlet>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
       </init-param>
        <init-param>   
            <param-name>flex.write.path</param-name>   
            <param-value>/WEB-INF/flex</param-value>   
        </init-param>   
        <init-param>
   <param-name>useContextClassLoader</param-name>
   <param-value>true</param-value>
</init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    
<!-- Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>resources.application</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts/struts-config.xml,
   /WEB-INF/struts/struts-config-sim.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<!-- dwr start -->
<servlet> 
<servlet-name>dwr-invoker</servlet-name> 
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> 
<init-param> 
<param-name>debug</param-name> 
<param-value>true</param-value> 
</init-param>
</servlet> 
<!-- dwr end -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>
org.jfree.chart.servlet.DisplayChart
</servlet-class>
</servlet>

<!-- jmesa -->
<servlet>
       <servlet-name>worksheet</servlet-name>
       <servlet-class>org.jmesa.worksheet.servlet.WorksheetServlet</servlet-class>
        </servlet>
    <!-- jmesa end -->
   
<servlet>
     <servlet-name>GetSpringContext</servlet-name>
     <servlet-class>com.topsec.tal.base.web.SpringContextServlet</servlet-class>
     <init-param>
      <param-name>initClass</param-name>
      <param-value>
      com.topsec.tal.base.util.config.ConfigsReader;
      </param-value>
     </init-param>
     <init-param>
<param-name>InTopAnalyzer</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>SessionTime</param-name>
<param-value>60</param-value>
</init-param>
<init-param>
<param-name>SessionPassPage</param-name>
<param-value>meter.do;sim/sysman/sysLogMan.do</param-value>
</init-param>
     <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> 
</servlet>


<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Resteasy Mapping -->
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/resteasy/*</url-pattern>
</servlet-mapping>  
<!-- dwr -->
<servlet-mapping> 
<servlet-name>dwr-invoker</servlet-name> 
<url-pattern>/exec/*</url-pattern> 
</servlet-mapping>
<!-- dwr end -->


<servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping> 


<!-- jmesa -->
<servlet-mapping>
        <servlet-name>worksheet</servlet-name>
        <url-pattern>*.wrk</url-pattern>
    </servlet-mapping>
<!-- jmesa end -->
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>

<!-- The Welcome File List -->
<welcome-file-list>
<welcome-file>main.jsp</welcome-file>
</welcome-file-list>
<!-- The default error page -->
<error-page>
 <error-code>404</error-code>
 <location>/common/404.jsp</location>
</error-page>
</web-app>

0 0
原创粉丝点击