麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

jmeter java請求

2019-11-15 00:59:26
字體:
來源:轉載
供稿:網友
jmeter java請求

demo下載地址http://yun.baidu.com/share/link?shareid=4277735898&uk=925574576

1、引用jmeter的jar包

到jmeter的保存目錄下lib這個文件夾除了自己加的jar包,全部添加到項目中,并build path

2、創建http請求類

http請求引用了這個jar包,javax.servlet-api-3.1.0.jar,項目寫完的時候,要把這個jar包一起打包,這個部分可以自己實現

package com.milan.util;import javax.servlet.ServletContext;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.Httpsession;import org.apache.commons.lang.StringUtils;//import org.codehaus.jackson.map.ObjectMapper;import java.lang.reflect.Method;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLDecoder;import java.io.*;import java.util.*;/** *  * HTTP 幫助類 * */public class HttpHelper{    /** URL 地址分隔符 */    public static final String URL_PATH_SEPARATOR    = "/";    /** HTTP URL 標識 */    public static final String HTTP_SCHEMA            = "http";    /** HTTPS URL 標識 */    public static final String HTTPS_SCHEMA            = "https";    /** HTTP 默認端口 */    public static final int HTTP_DEFAULT_PORT        = 80;    /** HTTPS 默認端口 */    public static final int HTTPS_DEFAULT_PORT        = 443;    /** 默認緩沖區大小 */    PRivate static final int DEFAULT_BUFFER_SIZE    = 4096;        private static final String METHOD_GET = "GET";    private static final String METHOD_POST = "POST";    private static ServletContext servletContext;        /** 獲取 {@link ServletContext} */    public static ServletContext getServletContext()    {        return servletContext;    }    private static final String defaultContentEncoding = "UTF-8";    /** 向頁面輸出文本內容 */    public final static void writeString(HttpURLConnection conn, String content, String charsetName) throws IOException    {        writeString(conn.getOutputStream(), content, charsetName);    }    /** 向頁面輸出文本內容 */    public final static void writeString(HttpServletResponse res, String content, String charsetName) throws IOException    {        writeString(res.getOutputStream(), content, charsetName);    }    /** 向頁面輸出文本內容 */    public final static void writeString(OutputStream os, String content, String charsetName) throws IOException    {        PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, charsetName));                pw.write(content);        pw.flush();        pw.close();    }    /** 向頁面輸出字節內容 */    public final static void writeBytes(HttpURLConnection conn, byte[] content) throws IOException    {        writeBytes(conn.getOutputStream(), content);    }    /** 向頁面輸出字節內容 */    public final static void writeBytes(HttpServletResponse res, byte[] content) throws IOException    {        writeBytes(res.getOutputStream(), content);    }    /** 向頁面輸出字節內容 */    public final static void writeBytes(OutputStream os, byte[] content) throws IOException    {        BufferedOutputStream bos = new BufferedOutputStream(os);                bos.write(content);        bos.flush();        bos.close();    }    /** 讀取頁面請求的文本內容 */    public final static String readString(HttpURLConnection conn, boolean escapeReturnChar, String charsetName) throws IOException    {        return readString(conn.getInputStream(), escapeReturnChar, charsetName);    }    /** 讀取頁面請求的字節內容 */    public final static String readString(HttpServletRequest request, boolean escapeReturnChar, String charsetName) throws IOException    {        return readString(request.getInputStream(), escapeReturnChar, charsetName);    }    /** 讀取頁面請求的文本內容 */    public final static String readString(InputStream is, boolean escapeReturnChar, String charsetName) throws IOException    {        StringBuilder sb = new StringBuilder();        BufferedReader rd = new BufferedReader(new InputStreamReader(is, charsetName));                try        {            if(escapeReturnChar)            {                for(String line = null; (line = rd.readLine()) != null;)                    sb.append(line);             }            else            {                int count        = 0;                char[] array    = new char[DEFAULT_BUFFER_SIZE];                                while((count = rd.read(array)) != -1)                    sb.append(array, 0, count);            }        }        finally        {            rd.close();        }                return sb.toString();    }        /** 讀取頁面請求的字節內容 */    public final static byte[] readBytes(HttpURLConnection conn) throws IOException    {        return readBytes(conn.getInputStream(), conn.getContentLength());    }    /** 讀取頁面請求的字節內容 */    public final static byte[] readBytes(HttpServletRequest request) throws IOException    {        return readBytes(request.getInputStream(), request.getContentLength());    }        /** 讀取頁面請求的字節內容 */    public final static byte[] readBytes(InputStream is) throws IOException    {        return readBytes(is, 0);    }    /** 讀取頁面請求的字節內容 */    public final static byte[] readBytes(InputStream is, int length) throws IOException    {        byte[] array = null;                if(length > 0)        {            array = new byte[length];                    int read    = 0;            int total    = 0;                        while((read = is.read(array, total, array.length - total)) != -1)                total += read;        }        else        {            List<byte[]> list    = new LinkedList<byte[]>();            byte[] buffer        = new byte[DEFAULT_BUFFER_SIZE];            int read    = 0;            int total    = 0;                        for(; (read = is.read(buffer)) != -1; total += read)            {                byte[] e = new byte[read];                System.arraycopy(buffer, 0, e, 0, read);                list.add(e);            }                        array = new byte[total];                        int write = 0;            for(byte[] e : list)            {                System.arraycopy(e, 0, array, write, e.length);                write += e.length;            }        }                return array;    }        /** 置換常見的 xml 特殊字符 */    public final static String regulateXMLStr(String src)    {        String result = src;        result = result.replaceAll("&", "&amp;");        result = result.replaceAll("/"", "&quot;");        result = result.replaceAll("'", "&apos;");        result = result.replaceAll("<", "&lt;");        result = result.replaceAll(">", "&gt;");                return result;    }    /** 置換常見的 HTML 特殊字符 */    public final static String regulateHtmlStr(String src)    {        String result = src;        result = result.replaceAll("&", "&amp;");        result = result.replaceAll("/"", "&quot;");        result = result.replaceAll("<", "&lt;");        result = result.replaceAll(">", "&gt;");        result = result.replaceAll("/r/n", "<br/>");        result = result.replaceAll(" ", "&nbsp;");                return result;    }        /** 確保 URL 路徑的前后存在 URL 路徑分隔符 */    public static final String ensurePath(String path, String defPath)    {        if(StringUtils.isEmpty(path))            path = defPath;        if(!path.startsWith(URL_PATH_SEPARATOR))            path = URL_PATH_SEPARATOR + path;        if(!path.endsWith(URL_PATH_SEPARATOR))            path = path + URL_PATH_SEPARATOR;                return path;    }        /** 獲取 {@link HttpServletRequest} 的指定屬性值 */    @SuppressWarnings("unchecked")    public final static <T> T getRequestAttribute(HttpServletRequest request, String name)    {        return (T)request.getAttribute(name);    }    /** 設置 {@link HttpServletRequest} 的指定屬性值 */    public final static <T> void setRequestAttribute(HttpServletRequest request, String name, T value)    {        request.setAttribute(name, value);    }        /** 刪除 {@link HttpServletRequest} 的指定屬性值 */    public final static void removeRequestAttribute(HttpServletRequest request, String name)    {        request.removeAttribute(name);    }    /** 獲取 {@link HttpSession} 的指定屬性值 */    @SuppressWarnings("unchecked")    public final static <T> T getSessionAttribute(HttpSession session, String name)    {        return (T)session.getAttribute(name);    }    /** 設置 {@link HttpSession} 的指定屬性值 */    public final static <T> void setSessionAttribute(HttpSession session, String name, T value)    {        session.setAttribute(name, value);    }        /** 刪除 {@link HttpSession} 的指定屬性值 */    public final static void removeSessionAttribute(HttpSession session, String name)    {        session.removeAttribute(name);    }        /** 銷毀 {@link HttpSession} */    public final static void invalidateSession(HttpSession session)    {        session.invalidate();    }    /** 獲取 {@link ServletContext} 的指定屬性值 */    @SuppressWarnings("unchecked")    public final static <T> T getapplicationAttribute(String name)    {        return (T)getApplicationAttribute(servletContext, name);    }    /** 獲取 {@link ServletContext} 的指定屬性值 */    @SuppressWarnings("unchecked")    public final static <T> T getApplicationAttribute(ServletContext servletContext, String name)    {        return (T)servletContext.getAttribute(name);    }    /** 設置 {@link ServletContext} 的指定屬性值 */    public final static <T> void setApplicationAttribute(String name, T value)    {        setApplicationAttribute(servletContext, name, value);    }    /** 設置 {@link ServletContext} 的指定屬性值 */    public final static <T> void setApplicationAttribute(ServletContext servletContext, String name, T value)    {        servletContext.setAttribute(name, value);    }        /** 刪除 {@link ServletContext} 的指定屬性值 */    public final static void removeApplicationAttribute(String name)    {        removeApplicationAttribute(servletContext, name);    }        /** 刪除 {@link ServletContext} 的指定屬性值 */    public final static void removeApplicationAttribute(ServletContext servletContext, String name)    {        servletContext.removeAttribute(name);    }    /** 獲取 {@link HttpServletRequest} 的指定請求參數值,并去除前后空格 */    public final static String getParam(HttpServletRequest request, String name)    {        String param = getParamNoTrim(request, name);        if(param != null) return param = param.trim();                return param;    }    /** 獲取 {@link HttpServletRequest} 的指定請求參數值 */    public final static String getParamNoTrim(HttpServletRequest request, String name)    {        return request.getParameter(name);    }    /** 獲取 {@link HttpServletRequest} 的參數名稱集合 */    public final static List<String> getParamNames(HttpServletRequest request)    {        List<String> names        = new ArrayList<String>();        Enumeration<String> en    = request.getParameterNames();                while(en.hasMoreElements())            names.add(en.nextElement());                return names;    }    /** 獲取 {@link HttpServletRequest} 的指定請求參數值集合 */    public final static List<String> getParamValues(HttpServletRequest request, String name)    {        String[] values = request.getParameterValues(name);        return values != null ? Arrays.asList(values) : null;    }        /** 獲取 {@link HttpServletRequest} 的所有參數名稱和值 */    public final static Map<String, String[]> getParamMap(HttpServletRequest request)    {        return request.getParameterMap();    }        /** 獲取 {@link HttpSession} 對象,如果沒有則進行創建。 */    public final static HttpSession getSession(HttpServletRequest request)    {        return getSession(request, true);    }    /** 獲取 {@link HttpSession} 對象,如果沒有則根據參數決定是否創建。 */    public final static HttpSession getSession(HttpServletRequest request, boolean create)    {        return request.getSession(create);    }    /** 創建 {@link HttpSession} 對象,如果已存在則返回原對象。 */    public final static HttpSession createSession(HttpServletRequest request)    {        return getSession(request);    }    /** 獲取所有 {@link Cookie} */    public final static Cookie[] getCookies(HttpServletRequest request)    {        return request.getCookies();    }        /** 獲取指定名稱的 {@link Cookie} */    public final static Cookie getCookie(HttpServletRequest request, String name)    {        Cookie cookie = null;        Cookie[] cookies = request.getCookies();                if(cookies != null)        {            for(Cookie c : cookies)            {                if(c.getName().equals(name))                {                    cookie = c;                    break;                }            }        }                return cookie;    }    /** 獲取指定名稱的 {@link Cookie} 值,失敗返回 null */    public final static String getCookieValue(HttpServletRequest request, String name)    {        String value = null;        Cookie cookie = getCookie(request, name);                if(cookie != null)            value = cookie.getValue();            if (value != null) {                try {                    value = URLDecoder.decode(value, "UTF-8");                } catch (UnsupportedEncodingException e) {                    e.printStackTrace();                }            }        return value;    }    /** 添加 {@link Cookie} */    public final static void addCookie(HttpServletResponse response, Cookie cookie)    {        response.addCookie(cookie);    }    /** 添加 {@link Cookie} */    public final static void addCookie(HttpServletResponse response, String name, String value)    {        addCookie(response, new Cookie(name, value));    }        /** 獲取 URL 的  BASE 路徑 */    public final static String getRequestBasePath(HttpServletRequest request)    {        String scheme        = request.getScheme();        int serverPort        = request.getServerPort();        StringBuilder sb    = new StringBuilder(scheme).append("://").append(request.getServerName());                if    (!(                (scheme.equals(HTTP_SCHEMA) && serverPort == HTTP_DEFAULT_PORT) ||                (scheme.equals(HTTPS_SCHEMA) && serverPort == HTTPS_DEFAULT_PORT)             ))                sb.append(":").append(request.getServerPort());                    sb.append(request.getContextPath()).append("/");        return sb.toString();    }        /** 獲取 URL 地址在文件系統的絕對路徑,     *      * Servlet 2.4 以上通過 request.getServletContext().getRealPath() 獲取,     * Servlet 2.4 以下通過 request.getRealPath() 獲取。     *       */    @SuppressWarnings("deprecation")    public final static String getRequestRealPath(HttpServletRequest request, String path)    {        if(servletContext != null)            return servletContext.getRealPath(path);        else        {            try            {                Method m = request.getClass().getMethod("getServletContext");                ServletContext sc = (ServletContext)m.invoke(request);                return sc.getRealPath(path);            }            catch(Exception e)            {                return request.getRealPath(path);            }        }    }        /** 獲取發送請求的客戶端瀏覽器所在的操作系統平臺 */    public final static String getRequestUserAgentPlatform(HttpServletRequest request)    {        int index        = 1;        String platform    = null;        String agent    = request.getHeader("user-agent");                if(StringUtils.isNotEmpty(agent))        {            int i                = 0;            StringTokenizer st    = new StringTokenizer(agent, ";");                        while(st.hasMoreTokens())            {                String token = st.nextToken();                                if(i == 0)                {                    if(token.toLowerCase().indexOf("compatible") != -1)                        index = 2;                }                else if(i == index)                {                    int sep = token.indexOf(")");                                        if(sep != -1)                        token = token.substring(0, sep);                                        platform = StringUtils.trimToEmpty(token);                                        break;                }                                ++i;            }        }        return platform;    }        /** 設置 HTTP 的 'Content-Type' 響應頭 */    public final static void setContentType(HttpServletResponse response, String contentType, String encoding)    {        StringBuilder sb = new StringBuilder(contentType);                        if(encoding != null)            sb.append(";charset=").append(encoding);                response.setContentType(sb.toString());    }        /** 禁止瀏覽器緩存當前頁面 */    public final static void setNoCacheHeader(HttpServletResponse response)    {        response.setHeader("Pragma", "No-cache");        response.setHeader("Cache-Control", "no-cache");        response.setDateHeader("Expires", 0);    }        /** 檢查請求是否來自非 Windows 系統的瀏覽器 */    public final static boolean isRequestNotComeFromWidnows(HttpServletRequest request)    {        String agent = request.getHeader("user-agent");                if(StringUtils.isNotEmpty(agent))            return agent.toLowerCase().indexOf("windows") == -1;                return false;    }    /**     * 發送GET請求     * @param url     * @return     * @throws IOException     */    public final static HttpRespons sendGet(String url) throws IOException{        return send(url,METHOD_GET,new HashMap(),null);    }    public final static HttpRespons sendGet(String url, Map<String,String> params) throws IOException{        return send(url,METHOD_GET,params,null);    }    public final static HttpRespons sendGet(String url, Map<String,String> params,Map<String,String> properties) throws IOException{        return send(url,METHOD_GET,params,properties);    }    public final static HttpRespons sendPost(String url) throws IOException{        return send(url,METHOD_POST,new HashMap(),null);    }    public final static HttpRespons sendPost(String url,Map<String,String> params) throws IOException{        return send(url,METHOD_POST,params,null);    }    public final static HttpRespons sendPost(String url, Map<String,String> params,Map<String,String> properties) throws IOException{        return send(url,METHOD_POST,params,properties);    }    /**     * 發送POST請求     * @param urlStr 請求地址     * @param send   發送數據包     * @return     * @throws IOException     */    public final static HttpRespons sendPost(String urlStr,String send,Map<String,String> headers) throws IOException{        return send(urlStr,METHOD_POST,send,headers);    }    public final static HttpRespons send(String urlStr,String method,String send,Map<String, String> headers) throws IOException{        HttpURLConnection conn = null;        URL url = new URL(urlStr);        conn = (HttpURLConnection) url.openConnection();        conn.setRequestMethod(method);        conn.setDoOutput(true);          conn.setDoInput(true);          conn.setUseCaches(false);        if(headers != null){            for (String key : headers.keySet()) {                conn.addRequestProperty(key, headers.get(key));            }        }        conn.getOutputStream().write(send.getBytes());        conn.getOutputStream().flush();        conn.getOutputStream().close();        return makeRespons(urlStr,conn);    }    private final static HttpRespons send(String urlStr,String method,Map<String, String> params, Map<String, String> propertys)              throws IOException{        HttpURLConnection conn = null;        if(METHOD_GET.equals(method) && params !=null && !params.isEmpty()){            StringBuffer param = new StringBuffer();              int i = 0;              for (String key : params.keySet()) {                  if (i == 0)                      param.append("?");                  else                      param.append("&");                  param.append(key).append("=").append(params.get(key));                i++;              }              urlStr += param;         }        URL url = new URL(urlStr);        conn = (HttpURLConnection) url.openConnection();        conn.setRequestMethod(method);        conn.setDoOutput(true);          conn.setDoInput(true);          conn.setUseCaches(false);        if(propertys != null && !propertys.isEmpty()){            for (String key : propertys.keySet()) {                conn.addRequestProperty(key, propertys.get(key));            }        }        if(METHOD_POST.equals(method) && params != null){            StringBuffer param = new StringBuffer();            for (String key : params.keySet()) {                  param.append("&");                  param.append(key).append("=").append(params.get(key));            }              conn.getOutputStream().write(param.toString().getBytes());            conn.getOutputStream().flush();            conn.getOutputStream().close();        }        return makeRespons(urlStr,conn);    }    private final static HttpRespons makeRespons(String urlString,HttpURLConnection urlConnection)throws IOException{        HttpRespons httpResponser = new HttpRespons();          try {              InputStream in = urlConnection.getInputStream();              BufferedReader bufferedReader = new BufferedReader(                      new InputStreamReader(in,"utf-8"));              httpResponser.contentCollection = new Vector<String>();              StringBuffer temp = new StringBuffer();              String line = bufferedReader.readLine();            while (line != null) {                  httpResponser.contentCollection.add(line);                  temp.append(line).append("/r/n");                  line = bufferedReader.readLine();              }              bufferedReader.close();                 String ecod = urlConnection.getContentEncoding();                          if (ecod == null){                  ecod = defaultContentEncoding;              }                       httpResponser.urlString = urlString;                 httpResponser.defaultPort = urlConnection.getURL().getDefaultPort();              httpResponser.file = urlConnection.getURL().getFile();              httpResponser.host = urlConnection.getURL().getHost();              httpResponser.path = urlConnection.getURL().getPath();              httpResponser.port = urlConnection.getURL().getPort();              httpResponser.protocol = urlConnection.getURL().getProtocol();              httpResponser.query = urlConnection.getURL().getQuery();              httpResponser.ref = urlConnection.getURL().getRef();              httpResponser.userInfo = urlConnection.getURL().getUserInfo();                 httpResponser.content = new String(temp.toString().getBytes(), "utf-8");              httpResponser.contentEncoding = ecod;              httpResponser.code =  urlConnection.getResponseCode();              httpResponser.message = urlConnection.getResponseMessage();              httpResponser.contentType = urlConnection.getContentType();              httpResponser.method = urlConnection.getRequestMethod();              httpResponser.connectTimeout = urlConnection.getConnectTimeout();              httpResponser.readTimeout = urlConnection.getReadTimeout();                        return httpResponser;          } catch (IOException e) {              throw e;          } finally {              if (urlConnection != null)                  urlConnection.disconnect();          }      }    /**     * 將請求中的json內容轉為Map     * @param request     * @return     * @throws IOException     *///    public static Map parseRequestJson(HttpServletRequest request) throws IOException{//        //        String str = readString(request, true, request.getCharacterEncoding());//        ObjectMapper mapper = new ObjectMapper();//        return mapper.readValue(str,HashMap.class);//    }}
View Code
package com.milan.util;import java.util.Vector;/** * 響應對象 * */public class HttpRespons {    String urlString;           int defaultPort;       String file;         String host;         String path;         int port;         String protocol;         String query;         String ref;         String userInfo;         String contentEncoding;         String content;         String contentType;         int code;         String message;         String method;         int connectTimeout;         int readTimeout;         Vector<String> contentCollection;    public String getUrlString() {        return urlString;    }    public void setUrlString(String urlString) {        this.urlString = urlString;    }    public int getDefaultPort() {        return defaultPort;    }    public void setDefaultPort(int defaultPort) {        this.defaultPort = defaultPort;    }    public String getFile() {        return file;    }    public void setFile(String file) {        this.file = file;    }    public String getHost() {        return host;    }    public void setHost(String host) {        this.host = host;    }    public String getPath() {        return path;    }    public void setPath(String path) {        this.path = path;    }    public int getPort() {        return port;    }    public void setPort(int port) {        this.port = port;    }    public String getProtocol() {        return protocol;    }    public void setProtocol(String protocol) {        this.protocol = protocol;    }    public String getQuery() {        return query;    }    public void setQuery(String query) {        this.query = query;    }    public String getRef() {        return ref;    }    public void setRef(String ref) {        this.ref = ref;    }    public String getUserInfo() {        return userInfo;    }    public void setUserInfo(String userInfo) {        this.userInfo = userInfo;    }    public String getContentEncoding() {        return contentEncoding;    }    public void setContentEncoding(String contentEncoding) {        this.contentEncoding = contentEncoding;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }    public String getContentType() {        return contentType;    }    public void setContentType(String contentType) {        this.contentType = contentType;    }    public int getCode() {        return code;    }    public void setCode(int code) {        this.code = code;    }    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.message = message;    }    public String getMethod() {        return method;    }    public void setMethod(String method) {        this.method = method;    }    public int getConnectTimeout() {        return connectTimeout;    }    public void setConnectTimeout(int connectTimeout) {        this.connectTimeout = connectTimeout;    }    public int getReadTimeout() {        return readTimeout;    }    public void setReadTimeout(int readTimeout) {        this.readTimeout = readTimeout;    }    public Vector<String> getContentCollection() {        return contentCollection;    }    public void setContentCollection(Vector<String> contentCollection) {        this.contentCollection = contentCollection;    }     }
View Code

3、創建 java請求類

java請求類需要繼承AbstractJavaSamplerClient類和實現Serializable接口。

package com.milan.test;import java.io.IOException;import java.io.Serializable;import java.util.HashMap;import java.util.Map;import org.apache.jmeter.config.Arguments;import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;import org.apache.jmeter.samplers.SampleResult;import com.milan.util.HttpHelper;public class JavaRequestTest extends AbstractJavaSamplerClient implements        Serializable {    // 設置默認值    public Arguments getDefaultParameters() {        Arguments params = new Arguments();        params.addArgument("url", "http://www.baidu.com");        params.addArgument("kw", "你好");        return params;    }    public SampleResult runTest(JavaSamplerContext arg0) {        SampleResult sr = new SampleResult();        sr.setSampleLabel("java請求測試-MiLan");        sr.sampleStart();//        // http請求        String strReturn = "";        try {            strReturn = Send(arg0);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        // 設置返回值        sr.setResponseData(strReturn, null);        sr.setDataType(SampleResult.TEXT);        System.out.println(strReturn);        sr.setSuccessful(true);        sr.sampleEnd();        return sr;    }    // http請求    private String Send(JavaSamplerContext arg0) throws IOException {        String url = arg0.getParameter("url", "http://www.baidu.com");        String kw = arg0.getParameter("kw", "MiLan");        Map<String, String> map = new HashMap<String, String>();        map.put("kw", kw);        return HttpHelper.sendGet(url, map).getContent();    }}

4、生成jar包

生成jar包的時候,不能選擇jmeter的jar包。只能選擇自己有用到的jar包。剛才用到了javax.servlet-api-3.1.0.jar,所以要把這個jar包一起打包。

需要用fatjar打包,不然可能找不到引用jar包的類。不知道怎么用fatjar打包的,可以參考http://www.companysz.com/milanmi/p/4651904.html

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品一区二区三区网站 | www.54271.com| 91精品国产综合久久婷婷香 | 91av国产在线| 精品中文字幕在线播放 | 毛片在线免费观看完整版 | 中国成人在线视频 | 91久久国产露脸精品国产 | 欧美一级不卡视频 | 欧美成人国产va精品日本一级 | 国产成人精品区一区二区不卡 | 久久久婷婷一区二区三区不卡 | 国产一区二区三区视频在线 | 日韩一级免费 | 日本在线不卡一区二区 | 成人午夜视屏 | 国产中出视频 | 激情视频在线播放 | 欧美日韩大片在线观看 | 91精品欧美一区二区三区 | 中文字幕免费在线观看视频 | 亚洲一区在线免费视频 | 精品一区二区电影 | 欧美精品毛片 | 国产99久久精品一区二区300 | 国产精品影视 | 欧美69free性videos | 成人一区二区三区在线 | av成人在线电影 | 一本色道久久综合亚洲精品图片 | 一级性色 | 日韩中字幕 | 日本欧美一区二区三区视频麻豆 | 欧美三级短视频 | 久久草在线视频 | 暖暖免费观看高清完整版电影 | 一区二区三区视频播放 | 日韩黄色av网站 | 欧美精品一区二区中文字幕 | 91精品国产乱码久久桃 | 久久人人爽人人爽人人片av免费 |