RestEasy(restful风格的)WebService
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,"访问 任务取消 ?接口前未登陆!"); ? ? ? ? ? ?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,"访问 任务启动 ?接口前未登陆!"); ? ? ? ? ? ?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.DATASOURCE_TYPE_LOG); if(datasourceCount.compareTo(licenceNum)<0){ ds.setAvailable(1L); dataSourceService.updateSimDatasource(ds); toLog(AuditCategoryDefinition.SYS_START,"启用日志源","启用日志源,状态:"+ds.getAvailable(),Severity.LOW); nodeDeployService.updateDataSource(ds.getNodeId(),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任务下发 启动任务异常:","启动任务时,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,"访问 任务停止 ?接口前未登陆!"); ? ? ? ? ? ?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.DATASOURCE_TYPE_LOG); if(datasourceCount.compareTo(licenceNum)<0){ ds.setAvailable(0L); dataSourceService.updateSimDatasource(ds); NodeMgrFacadeImpl.nodeTopoMap.remove(ds.getAuditorNodeId()); toLog(AuditCategoryDefinition.SYS_STOP,"禁用日志源","禁用日志源,Severity.MEDIUM); nodeDeployService.updateDataSource(ds.getNodeId(),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任务下发 停止任务异常:","停止任务时,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,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("用户名:{} 密码:{} 异常: {}",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.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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |