Tag: jersey

如何在HttpServletRequest中访问POST参数?

我有一个基本上是服务代理的应用程序。 该应用程序本身建在泽西岛上,由Jetty提供服务。 我有这个资源方法: @POST @Path(“/{default: .*}”) @Timed @Consumes(“application/x-www-form-urlencoded”) public MyView post(@Context UriInfo uriInfo, @Context HttpServletRequest request) { … } 用户提交POST表单。 所有POST请求都通过此方法。 除了一个细节之外,UriInfo和HttpServletRequest被适当地注入:似乎没有参数。 这是我从终端发送的请求: POST /some/endpoint HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 15 Content-Type: application/x-www-form-urlencoded; charset=utf-8 Host: localhost:8010 User-Agent: HTTPie/0.9.2 foo=bar&biz=baz POST主体显然包含2个参数:foo和biz。 但是当我尝试在我的代码( request.getParameterMap )中获取它们时,结果是一个大小为0的映射。 如何从资源方法中访问这些参数或此参数字符串? 如果重要,使用的HttpServletRequest的实现是org.eclipse.jetty.server.Request。

Jersey客户端API WebResource accept()没有正确设置MIME头?

public static WebResource createWebResource() { final ClientConfig cc = new DefaultClientConfig(); final Client c = Client.create(cc); final WebResource wr = c.resource(“http://localhost:19801/wtg_inventory_war/wtg/rest”) .path(inv); return wr; } public void tester() { final WebResource wr = JaxrsClientUtil.createWebResource() .path(“wtg-service”); wr.accept(MediaType.APPLICATION_XML); String response = wr.path(“get-services”) .type(MediaType.APPLICATION_XML) .get(String.class); System.out.println(response); } 服务器端: @Path(“get-services”) @GET @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public Response handleFindInventoryServices( @Context WtgSpringContainer ioc […]

glassfish的基本身份validation失败

首先,我为这篇长篇文章道歉。 这是我之前的问题( 在7u21更新后弹出身份validation所需的窗口 )关于此问题的延续 ,但我缩小了搜索范围。 简而言之,自Java 7u21以来,我的BASIC身份validation似乎已被破坏。 通过JNLP文件启动的小程序根本不起作用,并提供了身份validation弹出窗口。 设置 首先,我建立了一个带有usertable和grouptable的MySQL数据库 。 表:身份validation 表:组 接下来我在Glassfish中设置了一个jdbcRealm 。 请注意,数据库用户和数据库密码字段为空,因为我使用的是JNDI(请参见下文): Glassfish境界设置: JDNI配置 (如domain.xml文件中所示): 完成此操作后,我将默认域更改为新创建的jdbcRealm,并检查Default principal to role mapping : 测试 毕竟,为了测试,我在Netbeans中创建了一个简单的WebService,它从数据库中获取一些国家并配置web.xml进行BASIC身份validation: ServletAdaptor com.sun.jersey.spi.container.servlet.ServletContainer Multiple packages, separated by semicolon(;), can be specified in param-value com.sun.jersey.config.property.packages service com.sun.jersey.api.json.POJOMappingFeature true 1 ServletAdaptor /webresources/* 30 Basic Protection REST /webresources/* dummy BASIC jdbcRealm Dummy […]

ChunkedInput不适用于jersey

任何人都可以帮助我为什么java代码有问题并一次打印所有数据而不是将每个块作为javascript代码打印 Java代码: import org.glassfish.jersey.client.ChunkedInput; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; public class RunClient { public static void main(String args[]) throws InterruptedException { Client client = ClientBuilder.newClient(); //2 is to increase amount of data and 3(seconds) is for time b/w chunked output ,can be changed final Response response = client.target(“http://jerseyexample-ravikant.rhcloud.com/rest/jws/streaming/2/3”).request() .get(); final ChunkedInput chunkedInput […]

在JavaEE应用程序中使用Jackson作为JAXB-JSON处理器

我已经看过很多关于这个问题的文章和SO问题 – 但是我觉得它没有成功。 我的目标是在JavaEE应用程序中使用Jackson作为JSON处理器。 到目前为止我有什么? 的pom.xml 这一个 org.glassfish.jersey.media jersey-media-json-jackson 2.17 还是这一个(到底哪一个是正确的?) com.fasterxml.jackson.jaxrs jackson-jaxrs-json-provider 2.5.2 加上这个(由于这篇文章 ,因为jackson包中不再存在自动发现): org.glassfish.jersey.ext jersey-metainf-services 2.17 web.xml中 简单的REST注册: javax.ws.rs.core.Application 1 javax.ws.rs.core.Application /rest/* 一个简单的对象 import com.fasterxml.jackson.annotation.JsonProperty; public class Dummy { private String name; @JsonProperty(“username”) public String getName() { return name; } public void setName(String name) { this.name = name; } } REST资源 @GET […]

Java Restful Service eclipse tomcat HTTP Error 404

我试着跟上一个javarest服务。 所以我找到了一些教程,它们总是以相同的方式解释。 但我无法得到这个运行:(。 我在版本2.5中创建了Dynamic Web Project,在eclipse中创建了Tomcat 7.0。 然后我将以下jar加载到WEB-INF / lib 我的项目名是com.freespots.rest。 我创建了以下web.xml 好的,我现在要创建java类吗? 好吧,我做了Java Resources / src / com.freespots.rest.service: 如果我启动Tomcat并输入url到我的浏览器,如localhost:8080 / com.freespots.rest,Tomcat会显示我的index.html文件。 但是,如果我去url localhost:8080 / com.freespots.rest / api / hello只有一个HTTP 404错误: 我刚接触Java Webdevelopment,我无法弄清楚我的问题。 我希望有些人可以解释我的错误。 提前致谢。

无法获得jersey 2应用程序使用自定义jackson XmlMapper

我正在使用Jersey 2.22.1和Jackson 2.6.3编写Web应用程序。 我的pom.xml看起来像这样: org.glassfish.jersey.containers jersey-container-servlet 2.22.1 org.glassfish.jersey.core jersey-client 2.22.1 org.glassfish.jersey.media jersey-media-json-jackson 2.22.1 org.glassfish.jersey.media jersey-media-multipart 2.22.1 asm asm 3.3.1 org.codehaus.woodstox woodstox-core-asl 4.4.1 com.fasterxml.jackson.core jackson-core 2.6.3 com.fasterxml.jackson.core jackson-databind 2.6.3 com.fasterxml.jackson.core jackson-annotations 2.6.3 com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.6.3 目标是使用不同的自定义ObjectMapper进行JSON和XML映射。 我创建了两个提供程序类:JSONMapperProvider @Provider @Produces(MediaType.APPLICATION_JSON) public class JSONMapperProvider implements ContextResolver { private static ObjectMapper objectMapper; public JSONMapperProvider() { init(); } public static […]

weblogic中的类强制转换exception

我有一个使用泽西jars的Web应用程序(WAR文件)。现在我正在尝试部署这个我得到类强制转换exception(一些bootstrap servlet使用泽西)..在分析中我发现weblogic本身有共同的泽西jar子\ modules..and我的网络应用程序有不同版本的泽西jar子。 现在,如果我删除common / modules jersey jar,那么我的web应用程序就已部署。我想知道如何让我的web应用程序使用自己版本的jersey jar,以便在不删除常用/模块jar的情况下部署它.PS我的.war文件没有weblogic.xml,weblogic正在动态生成它。

IE11 CORS拒绝https上的OPTIONS

IE11由于某种原因拒绝PUT请求,但仅在我使用https时。 我很难找到问题,因为使用http,localhost和其他浏览器工作正常。 控制台显示两个错误 SEC7124: Request method PUT was not present in the Access-Control-Allow-Methods list. SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied. 从浏览器发送的OPTION请求是 Accept: */* Accept-Encoding: gzip, deflate Access-Control-Request-Headers: accept, content-type, session-id Access-Control-Request-Method: PUT Cache-Control: no-cache Connection: Keep-Alive Content-Length: 0 Host: api.domain.com Origin: https://portal.domain.com User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko 并且来自服务器的响应如下: […]

使用JAXB在Jersey RESTful API的JSON输出中包含null元素

我有一个类,我想通过Jersey RESTful API公开。 它看起来类似于: @XmlRootElement public class Data { public String firstName; public String lastName; } 我的问题是这些字段可能为null,在这种情况下,字段从JSON输出中省略。 我希望所有领域都存在,无论它们的价值如何。 例如,如果lastName为null,则JSON输出将为: { “firstName” : “Oleksi” } 而不是我想要的: { “firstName” : “Oleksi”, “lastName” : null } 我有一个JAXBContextResolver(ContextResolver的实现),如下所示: @Provider public class JAXBContextResolver implements ContextResolver { // internal state private final JAXBContext context; private final Set types; private final Class[] […]