- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 Dropwizard 在 Scala 中编写 RESTful API 一段时间了,我真的很想在 Clojure 中使用它。
我想要做的是创建 com.yammer.dropwizard.Service
的子类,我可以在我的 -main
中实例化并运行它,我是努力实现这一目标。
据我所知,我的选择是:
ns
声明中的
gen-class
。不可行,因为我想构建宏(例如 defservice
),但我无法在 ns
声明中使用它。除非有某种方法可以在运行时生成一个东西并将其传递给compile
,但这看起来像是一个肮脏的黑客。gen-class
在 ns
之外。尽管some code I found ,看来这根本行不通。这是一个简单的例子:
user> (gen-class :name foo :extends Object)
nil
user> (foo.)
Unable to resolve classname: foo
[Thrown class java.lang.IllegalArgumentException]
我知道gen-class
仅在编译时起作用。我将其放入一个文件中并将 (foo.
放入我的 -main
中,我得到了相同的异常。
代理
。这似乎是最有前途的,它适用于简单的情况,但在扩展 Dropwizard 的 Service
类时则不然:
user> (proxy [Object] [])
#<Object$0 user.proxy$java.lang.Object$0@249faafc>
user> (import [com.yammer.dropwizard Service])
com.yammer.dropwizard.Service
user> (proxy [Service] ["x"])
java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
[Thrown class java.lang.ClassCastException]
我认为这可能是由于 Service
采用类型参数,但我找不到有关在 Clojure 中处理此问题的任何信息。我发现的似乎表明这些仅对 javac 有意义,并且被 Clojure 忽略。所以也许我对为什么会发生这种情况的理解是错误的。
deftype
。不起作用,因为 Service
是一个类,而 deftype
仅适用于接口(interface)和协议(protocol)。
我认为我走在正确的轨道上,但缺少一些关于gen-class
和/或proxy
工作方式的微妙之处,并且Clojure文档是极其简洁。如何在 Clojure 中扩展这个 Java 类?
最佳答案
我会说使用选项 1,但除非我误解了您的描述,否则听起来您正在尝试在命名空间表单内编写代码?这不是你想要的。当您将 gen-class 添加到 namespace 表单时,将为整个 namespace 生成一个 Java 类。然后,您可以通过使用 - 前缀命名该 ns 中的函数来覆盖方法(或选择另一个并使用 :method-prefix)。
这是一个例子。我对您用来测试这些类的库了解不够,但它至少应该相似:
(ns com.myapp.MyService
(:gen-class
:extends com.yammer.dropwizard.Service
:exposes-methods {someSuperClassMethod someLocalAlias}))
;; now just write your code as normal, note that
;; you can access super-class methods with the exposes-methods
;; map above!
;; prefix your overriden methods with -
(defn -overriddenMethod
[params]
... )
希望有帮助!
关于java - 在 Clojure 中扩展 Dropwizard Service 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025882/
我在我的机器上集成了 dropwizards。 我公开了它们,但我正在寻找它们的含义的信息。 例如,我如何获得每秒的请求数?任何此类信息都可以在任何地方获得,因为我无法在官方网站上找到它。 谢谢。 最
我想知道“Counter”和“Meter”类维护的计数之间是否有区别?我了解仪表也测量费率,但我很好奇是否有一个计数器和一个仪表同时更新(计数器增加),我认为两个数字会相同。我这个假设错了吗? 最佳答
我在我的机器上集成了 dropwizards。 我公开了它们,但我正在寻找它们的含义的信息。 例如,我如何获得每秒的请求数?任何此类信息都可以在任何地方获得,因为我无法在官方网站上找到它。 谢谢。 最
为什么 dropwizard 有两个不同的 groupId。io.dropwizard和com.yammer.dropwizard 当你会在 git pom 文件中看到。它有 io.dropwizar
我的 dropwizard 日志仅将所有内容输出到控制台,并输出所有级别的日志记录。我想在开发输出到控制台期间为我自己的东西记录一些日志,但过滤掉噪音。我已经坚持了一段时间,自从我升级到 dropwi
我正在使用 dropwizard 版本 0.7.1。它被配置为使用“随机”(临时?)端口(server.applicationConnectors.port=0)。我想在启动后获得真正在使用的端口,但
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 Stack Overflow 的 on-topic。 2年前关闭。
如何对Dropwizard管理门户进行身份验证,以限制普通用户访问它?请帮忙 最佳答案 在您的配置中,您可以在 http 下设置 adminUsername 和 adminPassword,如下所示:
我无法在 Dropwizard 应用程序的 run() 方法中注册多个资源。当我这样做时,我收到以下异常: Exception in thread "main" MultiException[java
我正在尝试从 dropwizard 应用程序构建 war 并进行部署。 我可以成功运行 jar 并访问我的休息服务。 有没有人从 dropwizard 应用程序创建并成功部署了一场 war ? 什么是
与 ObjectMapper ( com.fasterxml.jackson.databind ) 可以指定它应该忽略未知属性。这可以通过添加 @JsonIgnoreProperties(ignore
当我使用 Dropwizard 开发微服务时,我试图在 Dropwizard 的一个正在运行的实例/应用程序上拥有许多资源与在许多实例上拥有许多资源之间找到平衡。 例如 - 我有一个项目 A,有 3
我刚刚开始使用 Dropwizard 0.4.0,我想要一些有关 HMAC 身份验证的帮助。有人有什么建议吗? 先感谢您。 最佳答案 目前 Dropwizard 不支持开箱即用的 HMAC 身份验证,
我有一个 dropwizard 应用程序,它发出 yammer 指标,可以通过像 http://localhost:8081/admin/metrics 这样的 URL 进行监控。它以jsons的形式
我正在尝试为 Dropwizard 创建一个计划作业,该作业每分钟运行一次并查询数据库中的值。 为此,我需要在 initialize() 中注册一些 DAO 和服务。阶段,像这样: @Override
您如何将 dropwizard jdbi 2.78 升级到 jdbi 版本 3,因为我想使用其中包含的连接功能。 最佳答案 项目成员在这里。 我们将在 v3 最终版本之前发布更完整的迁移指南。与此同时
我在 Dropwizard 0.8 中使用 Basic Auth 并且我需要访问我的 SimpleAuthenticator 类中的请求上下文,而不是基本凭据。 也许我需要我自己的 AuthFacto
使用 Dropwizard 0.6.2 很容易做到这一点,但随着迁移到 0.7.x,它变得更加困难。我可以让它工作,但不是以完全合适的方式。我希望我的 RESTful API 在“/api/*”点可用
我是 dropwizard 的新手。我正在使用 0.8.5 版的 dropwizard。我有一个 dropwizard REST 服务,它在调用成功时返回 JSON,在调用不成功时返回 HTTL,例如
我是 dropwizard 的新手。我正在使用 0.8.5 版的 dropwizard。我有一个 dropwizard REST 服务,它在调用成功时返回 JSON,在调用不成功时返回 HTTL,例如
我是一名优秀的程序员,十分优秀!