草庐IT

Java:不区分大小写的枚举 Jersey 查询参数绑定(bind)

我试图覆盖/实现JSR311中的所有属性但是Jersey绑定(bind)似乎敏感:是原始类型有一个接受单个字符串参数的构造函数有一个名为valueOf或fromString的静态方法,它接受单个String参数(例如,参见Integer.valueOf(String))是List、Set或SortedSet,其中T满足上面的2或3。生成的集合是只读的。如何使Jersey绑定(bind)不区分大小写?编辑:代码如下:枚举:publicenumColor{GREEN,BLUE;publicColorfromString(Stringparam){StringtoUpper=param.to

java - 使用构建器模式编码解码不可变对象(immutable对象)的最佳方法

我有一个用Java开发的简单的Restful服务。我一直在研究一些用于编码/解码json的选项。可用的可能方法,jaxbjackson等,对我来说很新,我正在努力适应它们。我想知道我是否可以得到一些关于什么是最好的方法和技术的建议,特别是考虑到我感兴趣的许多对象我已经实现为不可变的并且我已经使用了构建器模式。所以没有setter并且构造函数是私有(private)的。我看过之前的问题:Jackson+BuilderPattern?发布在计算器上。我正在考虑类似这种方法的方法,尽管获得一些指向有关使用@JsonDeserialize的更多资源的指针会很棒这是我正在考虑的对象类型的一个非常

java - 泽西客户端上传进度

我有一个jersey客户端需要上传一个足够大的文件来需要一个进度条。问题是,对于需要几分钟的上传,我看到传输的字节数应用程序启动后立即达到100%。然后它需要几分钟来打印“onfinished”字符串。就好像字节被发送到一个缓冲区,我正在读取传输到缓冲区的速度而不是实际的上传速度。这使得进度条毫无用处。这是非常简单的代码:ClientConfigconfig=newDefaultClientConfig();Clientclient=Client.create(config);WebResourceresource=client.resource("www.myrestserver.c

java - 在我的应用程序中查找所有 Jersey 资源方法的列表?

Jersey是否提供任何方式来列出它公开的所有资源?也就是说,给定资源类:packagecom.zoo.resource@Path("/animals")publicclassAnimalResource{@GET@Produces(MediaType.APPLICATION_JSON)@Path("dog")publicDoggetDog(){...}@GET@Produces(MediaType.APPLICATION_JSON)@Path("cat")publicCatgetCat(){...}}Jersey是否提供任何方式让我获取信息:GET在路径/animals/dog返回类

java - GlassFish 4.0 w/Jersey 毫无异常(exception)地返回 500 内部服务器错误

我正在使用GlassFish4.0服务器和基于服务器端JPA的类,我想通过JAX-RS提供这些类。到目前为止,这对于简单实体来说效果很好。但是,如果我有一个@OneToMany关系,并且有一个链接实体,服务器将返回500内部服务器错误。在这种情况下,服务器日志中不会记录任何内容。为了找到错误,我创建了一个小的自定义JSP页面来获取有关所发生情况的更多信息。代码就是这样:Status:Throwable:不幸的是,输出只是“Status:500Throwable:null”我自己的服务器端代码似乎运行正常(做了一些调试输出),但是,出现了一些错误。在此示例中,除非存在链接的IssueCo

java - Grizzly 和 Jersey 独立 jar

我正在尝试使用Maven阴影插件将Grizzly与Jersey打包为一个jar。但我总是收到消息Nocontainerprovidersupportsthetypeclassorg.glassfish.grizzly.http.server.HttpHandler代码在Eclipse中运行良好,但在打包的jar中运行不正常:publicclassMain{privatestaticURIgetBaseURI(){returnUriBuilder.fromUri("http://localhost/").port(9998).build();}publicstaticfinalURIBA

java - 为什么使用 Jersey 在 JSON 中用 @ 返回名称

我使用的JAXB是JerseyJAX-RS的一部分。当我为我的输出类型请求JSON时,我所有的属性名称都以这样的星号开头,这个对象;packagecom.ups.crd.data.objects;importjavax.xml.bind.annotation.XmlAttribute;importjavax.xml.bind.annotation.XmlType;@XmlTypepublicclassResponseDetails{@XmlAttributepublicStringReturnCode="";@XmlAttributepublicStringStatusMessage=

java - Jersey 客户端请求中未设置 Content-Length-Header

我正在使用JerseyClient访问网络服务,如下所示:响应=r.accept(MediaType.TEXT_PLAIN_TYPE).header("content-length",0).post(String.class);其中r是WebResource但是,Web服务返回411-Content-Length丢失。使用tcpdump,我发现我能够指定自定义header,即.header("myheader",0)工作正常。看来jersey出于某些原因正在删除内容长度header。有人有什么想法吗? 最佳答案 我实际上需要对Res

java - 尝试使用 Jersey 注入(inject)自定义上下文时缺少字段依赖项

我有一个自定义上下文:publicclassMyContext{publicStringdoSomething(){...}}我已经创建了一个上下文解析器:@ProviderpublicclassMyContextResolverimplementsContextResolver{publicMyContextgetContext(Classtype){returnnewMyContext();}}现在我尝试在资源中注入(inject)它:@Path("/")publicclassMyResource{@ContextMyContextcontext;}我得到以下错误:SEVERE:M

java - Grizzly 和 Servlet 容器上下文

我试图在我编写的、在Grizzly上运行的Servlet中获取一些注入(inject)的上下文(例如Session或HttpServletRequest),但我所做的一切似乎都不起作用。整个过程似乎因以下错误而过早停止:SEVERE:Missingdependencyforfield:javax.servlet.http.HttpServletRequestcom.test.server.LolCat.hsr服务器非常简单,它由两个文件组成,静态入口点(Main.java):packagecom.test.server;importjava.io.IOException;importj