lucene-solr本地调试方法
1.下载并编译lucene-solr的源代码,并导入 eclipse sts等
2.修改SolrDispatchFilter的solr.solr.home属性,我们这里将其直接修改为一个本地绝对路径,以便能够直接启动:
//String solrHome = (String) config.getServletContext().getAttribute(SOLRHOME_ATTRIBUTE);
String solrHome="E:\\demo\\lucene-solr\\solr\\server\\solr";
3.修改StartSolrJetty类
WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/solr");
bb.setWar("solr/webapp/web");
4.启动StartSolrJetty main方法
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/E:/demo/lucene-solr/solr/core/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/demo/lucene-solr/solr/solrj/test-lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/demo/lucene-solr/solr/solr-ref-guide/lib/slf4j-simple-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
0 INFO (main) [ ] o.e.j.u.log Logging initialized @512ms
>>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP
186 INFO (main) [ ] o.e.j.s.Server jetty-9.3.20.v20170531
590 INFO (main) [ ] o.e.j.w.StandardDescriptorProcessor NO JSP Support for /solr, did not find org.eclipse.jetty.jsp.JettyJspServlet
645 ERROR (main) [ ] o.a.s.u.StartupLoggingUtils Missing Java Option solr.log.dir. Logging may be missing or incomplete.
650 INFO (main) [ ] o.a.s.s.SolrDispatchFilter ___ _ Welcome to Apache Solr™ version 7.2.2
650 INFO (main) [ ] o.a.s.s.SolrDispatchFilter / __| ___| |_ _ Starting in standalone mode on port null
650 INFO (main) [ ] o.a.s.s.SolrDispatchFilter \__ \/ _ \ | '_| Install dir: null
664 INFO (main) [ ] o.a.s.s.SolrDispatchFilter |___/\___/_|_| Start time: 2019-03-06T08:37:17.132Z
691 INFO (main) [ ] o.a.s.c.SolrResourceLoader solr home defaulted to 'solr/' (could not find system property or JNDI)
698 INFO (main) [ ] o.a.s.c.SolrXmlConfig Loading container configuration from E:\demo\lucene-solr\solr\server\solr\solr.xml
10482 INFO (main) [ ] o.a.s.c.CorePropertiesLocator Found 1 core definitions underneath E:\demo\lucene-solr\solr\server\solr
10484 INFO (main) [ ] o.a.s.c.CorePropertiesLocator Cores are: [new_core]
10490 INFO (coreLoadExecutor-6-thread-1) [ ] o.a.s.c.TransientSolrCoreCacheDefault Allocating transient cache for 2147483647 transient cores
10568 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\extraction\lib filtered by .*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\extraction\lib
10568 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist filtered by solr-cell-\d.*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist
10568 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\clustering\lib filtered by .*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\clustering\lib
10569 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist filtered by solr-clustering-\d.*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist
10569 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\langid\lib filtered by .*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\langid\lib
10569 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist filtered by solr-langid-\d.*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist
10569 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist filtered by solr-ltr-\d.*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist
10569 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\velocity\lib filtered by .*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\contrib\velocity\lib
10569 WARN (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Couldn't add files from E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist filtered by solr-velocity-\d.*\.jar to classpath: E:\demo\lucene-solr\solr\server\solr\..\..\..\..\dist
10603 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.SolrIndexConfig IndexWriter infoStream solr logging is enabled
10606 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrConfig Using Lucene MatchVersion: 7.2.2
10794 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.s.IndexSchema [new_core] Schema name=example
10977 INFO (main) [ ] o.e.j.s.h.ContextHandler Started o.e.j.w.WebAppContext@6e9175d8{/solr,file:///E:/demo/lucene-solr/solr/webapp/web/,AVAILABLE}{solr/webapp/web}
10998 INFO (main) [ ] o.e.j.s.AbstractConnector Started ServerConnector@74d1dc36{HTTP/1.1,[http/1.1]}{0.0.0.0:8983}
10998 INFO (main) [ ] o.e.j.s.Server Started @11529ms
11572 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Registered ManagedResource impl org.apache.solr.rest.schema.analysis.ManagedWordSetResource for path /schema/analysis/stopwords/english
11573 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Registered ManagedResource impl org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory$SynonymManager for path /schema/analysis/synonyms/english
11573 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Added observer of type org.apache.solr.rest.schema.analysis.ManagedStopFilterFactory to existing ManagedResource /schema/analysis/stopwords/english
11573 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Added observer of type org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory to existing ManagedResource /schema/analysis/synonyms/english
11579 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.s.IndexSchema Loaded schema example/1.6 with uniqueid field item_no
11579 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Added observer of type org.apache.solr.rest.schema.analysis.ManagedStopFilterFactory to existing ManagedResource /schema/analysis/stopwords/english
11579 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Added observer of type org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory to existing ManagedResource /schema/analysis/synonyms/english
11579 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Added observer of type org.apache.solr.rest.schema.analysis.ManagedStopFilterFactory to existing ManagedResource /schema/analysis/stopwords/english
11579 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.RestManager Added observer of type org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory to existing ManagedResource /schema/analysis/synonyms/english
11625 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.CoreContainer Creating SolrCore 'new_core' using configuration from instancedir E:\demo\lucene-solr\solr\server\solr, trusted=true
11685 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrCore solr.RecoveryStrategy.Builder
11691 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.c.SolrCore [[new_core] ] Opening new SolrCore at [E:\demo\lucene-solr\solr\server\solr], dataDir=[E:\demo\lucene-solr\solr\server\solr\data\]
11847 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.XSLTResponseWriter xsltCacheLifetimeSeconds=5
21333 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.UpdateHandler Using UpdateLog implementation: org.apache.solr.update.UpdateLog
21333 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.UpdateLog Initializing UpdateLog: dataDir= defaultSyncLevel=FLUSH numRecordsToKeep=100 maxNumLogsToKeep=10 numVersionBuckets=65536
21356 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.CommitTracker Hard AutoCommit: if uncommited for 15000ms;
21357 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.CommitTracker Soft AutoCommit: disabled
21474 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IFD][coreLoadExecutor-6-thread-1]: init: current segments file is "segments_3"; deletionPolicy=org.apache.solr.core.IndexDeletionPolicyWrapper@2801c812
21474 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IFD][coreLoadExecutor-6-thread-1]: init: load commit "segments_3"
21479 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IFD][coreLoadExecutor-6-thread-1]: now checkpoint "_0(7.2.2):C1 _1(7.2.2):C1" [2 segments ; isCommit = false]
21479 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IFD][coreLoadExecutor-6-thread-1]: 0 msec to checkpoint
21479 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: init: create=false
21479 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]:
dir=NRTCachingDirectory(MMapDirectory@E:\demo\lucene-solr\solr\server\solr\data\index lockFactory=org.apache.lucene.store.NativeFSLockFactory@340158a7; maxCacheMB=48.0 maxMergeSizeMB=4.0)
index=_0(7.2.2):C1 _1(7.2.2):C1
version=7.2.2
analyzer=org.apache.solr.update.SolrIndexConfig$DelayedSchemaAnalyzer
ramBufferSizeMB=100.0
maxBufferedDocs=-1
mergedSegmentWarmer=null
delPolicy=org.apache.solr.core.IndexDeletionPolicyWrapper
commit=null
openMode=APPEND
similarity=org.apache.lucene.search.similarities.DavidSimilarity
mergeScheduler=ConcurrentMergeScheduler: maxThreadCount=-1, maxMergeCount=-1, ioThrottle=true
codec=Lucene70
infoStream=org.apache.solr.update.LoggingInfoStream
mergePolicy=[TieredMergePolicy: maxMergeAtOnce=10, maxMergeAtOnceExplicit=30, maxMergedSegmentMB=5120.0, floorSegmentMB=2.0, forceMergeDeletesPctAllowed=10.0, segmentsPerTier=10.0, maxCFSSegmentSizeMB=8.796093022207999E12, noCFSRatio=0.1
indexerThreadPool=org.apache.lucene.index.DocumentsWriterPerThreadPool@1266476d
readerPooling=true
perThreadHardLimitMB=1945
useCompoundFile=false
commitOnClose=true
indexSort=null
writer=org.apache.solr.update.SolrIndexWriter@35039ae8 21480 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: MMapDirectory.UNMAP_SUPPORTED=true
21481 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: flush at getReader
21481 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [DW][coreLoadExecutor-6-thread-1]: startFullFlush
21482 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: now apply all deletes for all segments buffered updates bytesUsed=0 reader pool bytesUsed=0
21482 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [BD][coreLoadExecutor-6-thread-1]: waitApply: no deletes to apply
21550 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: incRefDeleter for NRT reader version=10 segments=_0(7.2.2):C1 _1(7.2.2):C1
21550 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: return reader version=10 reader=StandardDirectoryReader(segments_3:10:nrt _0(7.2.2):C1 _1(7.2.2):C1)
21550 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [DW][coreLoadExecutor-6-thread-1]: coreLoadExecutor-6-thread-1 finishFullFlush success=true
21551 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.u.LoggingInfoStream [IW][coreLoadExecutor-6-thread-1]: getReader took 69 msec
21565 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.s.SolrIndexSearcher Opening [Searcher@6e7addcb[new_core] main]
21578 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResourceStorage File-based storage initialized to use dir: E:\demo\lucene-solr\solr\server\solr\conf
21580 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResourceStorage Loaded LinkedHashMap at path _rest_managed.json using file:dir=E:\demo\lucene-solr\solr\server\solr\conf
21580 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResource Loaded initArgs {} for /rest/managed
21581 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResourceStorage Loaded LinkedHashMap at path _schema_analysis_stopwords_english.json using file:dir=E:\demo\lucene-solr\solr\server\solr\conf
21581 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResource Loaded initArgs {ignoreCase=true} for /schema/analysis/stopwords/english
21581 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.s.a.ManagedWordSetResource Loaded 35 words for /schema/analysis/stopwords/english
21582 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResource Notified 4 observers of /schema/analysis/stopwords/english
21582 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResourceStorage Loaded LinkedHashMap at path _schema_analysis_synonyms_english.json using file:dir=E:\demo\lucene-solr\solr\server\solr\conf
21582 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResource Loaded initArgs {ignoreCase=true,format=solr} for /schema/analysis/synonyms/english
21583 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.s.a.ManagedSynonymGraphFilterFactory Loaded 3 synonym mappings for /schema/analysis/synonyms/english
21585 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.r.ManagedResource Notified 4 observers of /schema/analysis/synonyms/english
21600 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.h.c.SpellCheckComponent Initializing spell checkers
21610 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.s.DirectSolrSpellChecker init: {name=default,field=text,classname=solr.DirectSolrSpellChecker,distanceMeasure=internal,accuracy=0.5,maxEdits=2,minPrefix=1,maxInspections=5,minQueryLength=4,maxQueryFrequency=0.01}
21621 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.h.c.SuggestComponent Initializing SuggestComponent
21624 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.s.s.SolrSuggester init: {name=mySuggester,lookupImpl=FuzzyLookupFactory,dictionaryImpl=DocumentDictionaryFactory,field=cat,weightField=price,suggestAnalyzerFieldType=string,buildOnStartup=false}
21649 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.s.s.SolrSuggester Dictionary loaded with params: {name=mySuggester,lookupImpl=FuzzyLookupFactory,dictionaryImpl=DocumentDictionaryFactory,field=cat,weightField=price,suggestAnalyzerFieldType=string,buildOnStartup=false}
21651 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.h.c.QueryElevationComponent Loading QueryElevation from: E:\demo\lucene-solr\solr\server\solr\conf\elevate.xml
21667 INFO (coreLoadExecutor-6-thread-1) [ x:new_core] o.a.s.h.ReplicationHandler Commits will be reserved for 10000ms.
21786 INFO (searcherExecutor-7-thread-1-processing-x:new_core) [ x:new_core] o.a.s.c.QuerySenderListener QuerySenderListener sending requests to Searcher@6e7addcb[new_core] main{ExitableDirectoryReader(UninvertingDirectoryReader(Uninverting(_0(7.2.2):C1) Uninverting(_1(7.2.2):C1)))}
21870 INFO (searcherExecutor-7-thread-1-processing-x:new_core) [ x:new_core] o.a.s.c.S.Request [new_core] webapp=null path=null params={q=static+firstSearcher+warming+in+solrconfig.xml&distrib=false&event=firstSearcher} hits=0 status=0 QTime=81
21871 INFO (searcherExecutor-7-thread-1-processing-x:new_core) [ x:new_core] o.a.s.c.QuerySenderListener QuerySenderListener done.
21871 INFO (searcherExecutor-7-thread-1-processing-x:new_core) [ x:new_core] o.a.s.h.c.SpellCheckComponent Loading spell index for spellchecker: default
21871 INFO (searcherExecutor-7-thread-1-processing-x:new_core) [ x:new_core] o.a.s.h.c.SpellCheckComponent Loading spell index for spellchecker: wordbreak
21875 INFO (searcherExecutor-7-thread-1-processing-x:new_core) [ x:new_core] o.a.s.c.SolrCore [new_core] Registered new searcher Searcher@6e7addcb[new_core] main{ExitableDirectoryReader(UninvertingDirectoryReader(Uninverting(_0(7.2.2):C1) Uninverting(_1(7.2.2):C1)))}
参考资料:
【1】http://www.cnblogs.com/mmaa/p/5789860.html
lucene-solr本地调试方法的更多相关文章
- hadoop本地调试方法
Mapreduce 是Hadoop上一个进行分布式数据运算和统计的框架,但是每次运行程序的时候都需要将程序打包并上传的集群环境中运行,这就会让程序的调试变得十分不方便.所以在这里写下这篇博客和大家交流 ...
- Hive 本地调试方法
关键词:hive, debug 本地调试(local debug) Hive 可分为 exec (hive-exec,主要对应源码里的ql目录) 和 metastore 两部分,其中exec对外有两种 ...
- fiddler本地调试
参考:https://blog.csdn.net/letasian/article/details/75021656 有关fiddler基础用法的介绍详见我的上一篇博客:http://www.cnbl ...
- Oracle在本地调试成功读取数据,但是把代码放到服务器读不出数据的解决方法。
用MVC EF框架开发项目,数据库用的是Oracle,本地调试的时候一切正常,但是把代码编译之后放到服务器就会读不出数据. 原因:本地调试环境与服务器环境不一致. 办法:在服务器上装ODT.NET组件 ...
- 【matlab】MATLAB程序调试方法和过程
3.8 MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...
- Lucene/Solr开发经验
1.开篇语2.概述3.渊源4.初识Solr5.Solr的安装6.Solr分词顺序7.Solr中文应用的一个实例8.Solr的检索运算符 [开篇语]按照惯例应该写一篇技术文章了,这次结合Lucene/S ...
- 在本地调试微信项目(C#)
之前一人负责微信的项目,那时2014年LZ还没毕业..啥都不懂,为此特别感谢@SZW,没有你的框架,我可能都无从下手 当时做项目最麻烦的就是调试,因为很多页面都要使用 网页授权获取用户信息 在电脑上打 ...
- Perl的调试方法
来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/ ...
- 《转》VS2010进行远程调试方法总结
---恢复内容开始--- 原文地址:http://blog.sina.com.cn/s/blog_a459dcf5010153o7.html 假设现在有A.B两台PC机. VS2010安装在A机器上, ...
随机推荐
- 2018-04-10 我的GitHub诞生的日子,欢迎大家吐槽批评
我的GitHub,诞生的日子,欢迎大家吐槽与批评,嘻嘻 首先是自己想刷一下LeetCode上的代码,其次创建了自己的读书笔记以及面试经验与教训 下边是仓库的Git链接,欢迎大家的批评与修正,谢谢: L ...
- flask-文件上传
flask文件上传 流程 1. 上传的文件request.files拿取 2. 可以通过WTForms表单验证 3. 通过secure_filename (from werkzeug.utils im ...
- idea jetty 配置
一.jetty 网址下载地:https://www.eclipse.org/jetty/ 1.如下图红色箭头--> 点击Downloads 下载 2.选择最新版 .ZIP 下载 3.选择安装路径 ...
- [smf]smf论坛也很漂亮
smf论坛代码国内使用的比较少,可能是大家习惯了dz论坛的互动方式吧!但是,smf论坛系统不失为一款好的论坛系统,也是目前为数不多的开源代码.使用起来之后,你会体会到它强大的后台操作.(例如:插件的安 ...
- 从零起步做到Linux运维经理, 你必须管好的23个细节
“不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...
- 包建强的培训课程(2):Android与设计模式
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- Android开发 - 掌握ConstraintLayout(九)分组(Group)
使用ConstraintLayout后我们的布局是没有层级关系的,各个View之间都是平级关系,但是如果根据某个业务条件来控制多个View的显示与否,我们需要分别对每个View进行控制,需要调用多次s ...
- Ubuntu 16.04下Samba服务器搭建和配置(配截图)
一.相关介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和 ...
- 全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案等
1.引言 对于互联网,域名是访问的第一跳,而这一跳很多时候会“失足”(尤其是移动端网络),导致访问错误内容.失败连接等,让用户在互联网上畅游的爽快瞬间消失. 而对于这关键的第一跳,包括鹅厂在内的国 ...
- Android开发技术周报183学习记录
Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...