All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nh.micro.controller.MicroControllerServlet Maven / Gradle / Ivy

The newest version!
package com.nh.micro.controller;



import groovy.lang.GroovyObject;

import java.io.IOException;
import java.lang.reflect.Method;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import com.nh.micro.rule.engine.core.GroovyExecUtil;


/**
 * 
 * @author ninghao
 *
 */
public class MicroControllerServlet extends HttpServlet  {

	private static final long serialVersionUID = 1L;

	private String prepath=null;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MicroControllerServlet() {
        super();
    }


	public String getPrepath() {
		return prepath;
	}
	public void setPrepath(String prepath) {
		this.prepath = prepath;
	}
	public void init(ServletConfig config) throws ServletException { 
		if(prepath==null){
			this.prepath=config.getInitParameter("prepath");
		}
	
    } 

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String url=request.getRequestURI();
		String context=request.getServletContext().getContextPath();
		int prelen=context.length();
		String busUrl=url.substring(prelen);
		if(prepath!=null && !"".equals(prepath)){
			if(busUrl.startsWith("/"+prepath)){
				busUrl=busUrl.substring(prepath.length()+1);
			}
		}
		String version=request.getParameter("micro_api_version");
		String[] config=MicroControllerMap.mappingGroovyName(busUrl,version);
		if(config==null){
			throw new RuntimeException("can not check from "+url+" to "+busUrl+" config is null");
		}
		
		String groovyName=config[0];
		String methodName=config[1];
		
		Object[] typeArray=new Object[3];
		typeArray[0]=String.class;
		typeArray[1]=String.class;
		typeArray[2]=HttpServletRequest.class;
		//boolean methodFlag=false;
		
		//add 201808 ning
/*		if(checkflag!=null && checkflag.equals("yes")){
			GroovyObject authObj=GroovyExecUtil.getGroovyObj(groovyName);
			authObj.getClass().getAnnotations()
			Method[] methods=authObj.getClass().getDeclaredMethods();
			if(methods!=null){
				int size=methods.length;
				for(int i=0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy