我有一个基于Dropwizard的泽西REST服务在默认端口8080(服务)和8081(pipe理员)上运行,我需要将默认端口更改为不太常用的东西,我无法find任何信息这样做,有人能指点我吗?
我正在学习DropWizard Metrics库 (以前称为Coda Hale度量标准),对于何时应该使用Meters和Timers ,我感到困惑。 根据文件: 仪表:仪表测量一组事件发生的速率 和: 定时器:定时器基本上是一种事件types的持续时间的直方图,以及它发生率的一个米 基于这些定义,我无法辨别这些之间的区别。 我感到困惑的是, Timer并没有像我期望的那样被使用。 对我来说, Timer就是这样:一个计时器; 它应该测量start()和stop()之间的时间差。 但是, Timers似乎也捕捉到事件发生的速度,这感觉就像是在Meters'脚趾。 如果我能看到每个组件输出的例子,可以帮助我理解何时/在哪里使用这些。
在java空间中似乎有一种趋势,就是从一个war文件(或ear文件)的forms,将java web应用程序部署到一个java servlet容器(或应用程序服务器),而不是将应用程序打包为一个可执行的jar像docker这样的embedded式servlet / HTTP服务器。 我的意思是,更新的框架影响了新应用程序的开发和部署方式,而不是如何将应用程序交付给最终用户(例如,我得到了为什么Jenkins使用embedded式容器,非常容易抓取和移动)。 采用可执行jar选项的框架示例: Dropwizard , Spring Boot和Play (它不能在servlet容器上运行,但是HTTP服务器被embedded)。 我的问题是,从我们已经将我们的应用程序(主要是Struts2)部署到单个tomcat应用程序服务器的环境中,如果我们计划使用embedded式容器方法,需要做出什么样的更改,最佳实践或考虑? 目前,我们在单个tomcat服务器上运行大约10个自主开发的应用程序,对于这些小型应用程序来说,共享资源并在一台服务器上pipe理的能力是非常好的。 我们的应用程序不打算分发给最终用户在其环境中运行。 然而,如果我们决定利用更新的Java框架,那么这种方法是否会改变呢? 越来越多的云部署(例如,Heroku)的使用促成了可执行jar的转变吗? 如果您在Play部署方式中pipe理多个应用程序的经验与在单个应用程序服务器上部署传统战争文件的经验相同,请分享您的洞察力。
我正在从DropWizard 0.7.1迁移到0.8.1。 这包括从Jersey 1.x迁移到2.x. 在我使用Jersey 1.18.1的实现中,我实现了一个实现InjectableProvider的MyProvider (为了简单起见改变了所有的类名)。 这个类将创buildMyInjectable对象,包含自定义注入注释MyToken 。 MyToken包含MyToken传递和读取的各种属性。 最后,在Application类中,我注册了一个MyProvider的新实例,如下所示。 我已经做了一些研究,似乎无法绕过我在泽西2.x上重新创build(或replace,我想是)这样一个场景。 这里是目前的1.18.1实现: @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.PARAMETER, ElementType.FIELD }) public @interface MyToken { // Custom annotation containing various attributes boolean someAttribute() default true; // … } public class MyProvider implements InjectableProvider<MyToken, Parameter> { // io.dropwizard.auth.Authenticator private final Authenticator<String, MyObject> authenticator; public MyProvider(Authenticator<String, MyObject> authenticator) { this.authenticator […]