小编Eri*_*ier的帖子

Jersey 2.x具有属性的自定义注入注释

我正在从DropWizard 0.7.1迁移到0.8.1.这包括从Jersey 1.x迁移到2.x. 在我使用Jersey 1.18.1的实现中,我实现了MyProvider(为简单起见改变了所有类名)InjectableProvider.该类将创建MyInjectable包含自定义注入注释的对象MyToken.MyToken包含传递和读取的各种属性MyInjectable.最后,在Application类中我注册了一个新的实例MyProvider,如下所示.

我做了一些研究,似乎无法解决我在泽西岛2.x中如何重新创建(或替代,我认为)这样一个场景.

这是当前的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 = authenticator;
        }

        @Override
        public ComponentScope getScope() {
            return ComponentScope.PerRequest;
        }

        @Override
        public Injectable<?> getInjectable(ComponentContext …
Run Code Online (Sandbox Code Playgroud)

java jersey dropwizard jersey-2.0 hk2

11
推荐指数
1
解决办法
9706
查看次数

C#DateTime AddDays意外偏移

我有一个非常简单的DateTime对象,设置为日期01-01-0001.我提供了一个值,以天为单位添加到此DateTime.我看到我的结果出现了意想不到的偏差,两天.让我假装我打印出AddDays()调用的结果,如下所示:

DateTime myDateTime = DateTime.Parse("01-01-0001 00:00:00");
Console.WriteLine(myDateTime.AddDays(735768.0));
Run Code Online (Sandbox Code Playgroud)

使用上面的值(735768.0),我预计输出为"6/18/2015 12:00:00 AM".但是,相反,我得到"6/20/2015 12:00:00 AM".当我访问以下网站并计算01-01-0001 - > 06/18/2015之间的持续时间时,我得到的值为735,768天,如预期:

http://www.timeanddate.com/date/durationresult.html?m1=01&d1=01&y1=0001&m2=06&d2=18&y2=2015

我做错了什么,或者我不知道引擎盖下有什么事吗?

如果您想知道,735,768代表我正在使用的数据的第一次值.预计数据将于06/18/2015 00:00:00开始.

编辑:我应该注意,我只是将该特定网站作为冲突源的示例提供.其他网站,包括政府气象局,我得到的数据都给了我06-18-2015.这并不意味着C#是错误的.我更加好奇这个偏移的来源,以及为什么.

c# datetime

5
推荐指数
1
解决办法
788
查看次数

两个具有相似 @Path 注释的资源类上的 Jersey 404

我有一个 RESTful Web 服务,使用 Drop Wizard 0.8.5 和 Jersey 2.21。我有一个资源类,其注释为:

@Path("/mysite/somepath")

这个类包含各种方法,例如@GETs、@PUTS等,都工作得很好。

现在,我有另一个用@Path("/mysite"). 在此资源类中,我需要添加一些用路径注释的方法,如下所示:

@Path("/somepath/dothis")
@Path("/somepath/dothat")
Run Code Online (Sandbox Code Playgroud)

资源类都注册得很好。然而,当我调用第二个类时,我得到了 404,因为泽西岛似乎正在我的第一个类中寻找这些方法。除了更改我的 @Path 注释以避免这种命名冲突之外,还有其他方法可以解决此问题吗?

java rest jersey dropwizard jersey-2.0

2
推荐指数
1
解决办法
1001
查看次数

标签 统计

dropwizard ×2

java ×2

jersey ×2

jersey-2.0 ×2

c# ×1

datetime ×1

hk2 ×1

rest ×1