这可能是一个非常简单的问题.如何禁用Hikari-CP调试日志?在我的日志文件中,我有很多这些消息
DEBUG [.zaxxer.hikari.pool.HikariPool:] - Before cleanup pool stats HikariPool-0 (total=10, inUse=0, avail=10, waiting=0)
DEBUG [.zaxxer.hikari.pool.HikariPool:] - After cleanup pool stats HikariPool-0 (total=10, inUse=0, avail=10, waiting=0)
Run Code Online (Sandbox Code Playgroud)
在我的log4jConfig.xml中:
<logger name="org.zaxxer.hikari">
<level value="error"/>
</logger>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我记录器配置有什么问题吗?
谢谢!
为什么会出现在返回类型的差异assoc和dissocClojure中的,当他们的说法是一个记录?我的意思是assoc"不存在的键仍然会返回一条记录,但是dissoc现有的键会返回一张地图.
但是,从某种意义上说,两者都应该产生地图或记录,但不会表现出不同的行为.这种不同的原因是什么?
我有一个程序化的Undertow服务器设置.静态内容也由Undertow提供,没有反向代理.Undertow启动的Java代码如下所示:
ResourceManager resourceManager =
new FileResourceManager(new File("deploymentDir"), 100);
DeploymentInfo servletBuilder = Servlets.deployment()
.setResourceManager(resourceManager)
.setDeploymentName("testDeployment")
.setContextPath("/");
DeploymentManager manager = Servlets.defaultContainer()
.addDeployment(servletBuilder);
manager.deploy();
Undertow.Builder builder = Undertow.builder();
builder.addHttpListener(8080, domainName);
PathHandler path = Handlers.path(Handlers.redirect("/"))
.addPrefixPath("/", manager.start());
Undertow server = builder.setHandler(path).build();
server.start();
Run Code Online (Sandbox Code Playgroud)
我想知道一个gzip服务器如何在Undertow中响应?
谢谢,Vitaliy.
我正在使用vim-sexp和vim-sexp-mappings-for-regular-people插件来编辑Clojure文件.我不太明白什么是slurp和barf命令.
我试着和他们一起玩,似乎他们在相邻表格的开头/结尾插入/删除表格.那是对的吗?如果没有,什么是slurp和barf的正确定义?
我正在尝试在我的测试Clojure项目中使用Kris Jenkins的Yesql库.我queries.sql用单个查询创建了一个示例文件.单个core.clj文件看起来像这样(precalc是测试项目的名称):
(ns precalc.core)
(require '[yesql.core :refer [defqueries defquery]])
(println (defqueries "resources/queries.sql"))
(defquery col-type "resources/queries.sql")
(slurp "resources/queries.sql")
Run Code Online (Sandbox Code Playgroud)
当试图评估例如第4行时,我得到了
;!!CompilerException java.io.FileNotFoundException: resources/queries.sql, compiling:(precalc/core.clj:4:10)
我也试过放入queries.sqlroot项目文件夹,但无济于事.虽然啜食有效.我的错误必须非常明显.有人可以帮忙吗?
我使用Leiningen的复制品,Macvim和Tim Pope的vim-fireplace插件,通过cider-nrepl连接.
谢谢!
如何在Fireplace中浏览以前的表单评估结果?例如,如果有两种形式
(meta #'str)
(meta #'use)
Run Code Online (Sandbox Code Playgroud)
随后使用cpp命令进行评估,是否有可能在Vim缓冲区或某种quickfix列表中浏览这两个评估的输出?
谢谢!
我在Datomic架构中创建了一组属性.他们的:db/ident分为三个命名空间:: name,:tree,:node.现在我想删除所有这些并重新开始.我找到了所有必需的属性:
(def results
(q '[:find ?e
:where [?e :db/ident ?v]
[(namespace ?v) ?res]
[(contains? #{"task", "node", "tree"} ?res)]
]
(db conn)))
Run Code Online (Sandbox Code Playgroud)
然后创建了一组retractEntity语句:
(def retract-statements
(into [] (map #(vector :db.fn/retractEntity (first %1)) results)))
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试调用该事务:
@(d/transact conn [retract-statements])
Run Code Online (Sandbox Code Playgroud)
它给我:: db.error/invalid-attribute模式更改必须后跟:db.install/attribute或:db.alter/attribute
显然我做错了什么.有人可以帮忙吗?
谢谢!
下面是一个简单的Clojure应用程序示例lein new mw:
(ns mw.core
(:gen-class))
(def fs (atom {}))
(defmacro op []
(swap! fs assoc :macro-f "somevalue"))
(op)
(defn -main [& args]
(println @fs))
Run Code Online (Sandbox Code Playgroud)
在project.clj我有
:profiles {:uberjar {:aot [mw.core]}}
:main mw.core
Run Code Online (Sandbox Code Playgroud)
在REPL中运行时,评估@fs返回值{:macro-f somevalue}.但是,运行一个uberjar收益率{}.如果我改为op定义defn而不是defmacro,那么fs当从uberjar运行时再次有适当的内容.这是为什么?
我隐约意识到这与AOT编译有关,并且宏编译在编译阶段之前发生,但显然我对这些事情的理解是缺乏的.
我在尝试部署使用非常好的mixfix库的应用程序时遇到了这个问题,其中mixfix运算符是使用全局原子定义的.我花了很长时间才将问题与上面提到的例子隔离开来.
任何帮助将不胜感激.
谢谢!
我们有一个有效的Apache mod_ssl配置.我想为Undertow启用HTTPS支持,以便它同时监听http和https,从而避免了对Apache的需求.
我查看了Undertow的javadocs.Undertow.Builder类有两个带有以下签名的addHttpsListener方法:
public Builder addHttpsListener(int port, String host,
KeyManager[] keyManagers, TrustManager[] trustManagers);
public Builder addHttpsListener(int port, String host,
SSLContext sslContext) {
Run Code Online (Sandbox Code Playgroud)
所以我似乎可以在使用Builder API引导Undertow时使用这些,例如
Undertow server = Undertow.builder()
.addHttpsListener(8443, "localhost", sslContext)
.build();
Run Code Online (Sandbox Code Playgroud)
我不确定如何创建SSLContext变量,或者如何配置KeyManagers和TrustManagers.拥有mod_ssl正在使用的证书文件,如何继续为Undertow启用HTTPS?
更新:
根据hwellmann的回答,我重用了SslContextFactory.createSslContext()方法.在此之前,我必须将我的公钥/私钥对转换为PKCS12格式并将其导入Java密钥库.
提供SSL转换转换/导入命令(取自此处和此处),希望这对任何人都有用:
# Convert to PKCS12
$ openssl pkcs12 -export -out output_cert.pfx -inkey input_cert.key -in input_cert.crt -certfile intermediate.crt
# Import into Java keystore
$ keytool -v -importkeystore -srckeystore output_cert.pfx -srcstoretype PKCS12 -destkeystore output_store.jks -deststoretype JKS
Run Code Online (Sandbox Code Playgroud) 我使用了一个新的Compojure Leiningen项目lein new compojure test.Web服务器由lein repl然后运行
user=> (use 'ring.adapter.jetty)
user=> (run-jetty test.handler/app {:port 3000})
Run Code Online (Sandbox Code Playgroud)
路由和应用程序处理程序规范是微不足道的:
(defroutes app-routes
(GET "/*.do" [] "Dynamic page")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
Run Code Online (Sandbox Code Playgroud)
现在,在更改app-routes定义中的任何内容后(例如,将"动态页面"文本更改为其他任何内容,或修改URI匹配字符串),我不会在浏览器中获得更新的文本/路由.但是,当app-routes稍微改变定义时
(defn dynfn [] "Dynamic page fn")
(defroutes app-routes
(GET "/*.do" [] (dynfn))
(route/not-found "Not Found"))
Run Code Online (Sandbox Code Playgroud)
我在更改返回值时会获得动态更新dynfn.另外,遵循本文的建议并将app定义修改为
(def app
(wrap-defaults #'app-routes site-defaults))
Run Code Online (Sandbox Code Playgroud)
(注意#'透明地创建一个var app-routes)也有帮助!
为什么会这样?有没有其他方式可以获得真正的动态行为defroutes?
谢谢!