Tag: jax rs

在Web服务中使用JSON字节数组和application / x-www-form-urlencoded

有3个问题。 我正在使用Java Restful webservices并且请求是HTTP POST 客户端如何发送JSON数据以及application / x-www-form-urlencoded的MediaType。 是否可以使用字节数组? 如何使用在服务器端以byte []格式发送的JSON数据以及application / x-www-form-urlencoded的MediaType? 我可以使用Postman客户端以字节数组格式发送JSON吗?

如何从jersey servlet中的curl请求中提取参数?

我正在向表格中的我的jerseyservlet发送一个curl post restful请求 curl -i -X POST -d “debit_user_id=/custome/mobile_number:917827448775″http://localhost:8080/switch/apikongcall.do/transactions 我需要在我的servlet中获取debit_user_id,我的Post方法的代码是 @POST //@Path(“/transactions”) //@Consumes(MediaType.APPLICATION_JSON) public Response createTrackInJSON(@QueryParam(“debit_user_id”) String debit_user_id) { //Log logger = null; this.logger = LogFactory.getLog(getClass()); this.logger.info(“Inside post method”+debit_user_id); String response = debit_user_id; //String response = “testParam is: ” + recipient_id + “\n”; //String result = “Track saved : ” + track; return Response.status(200).entity(response).build(); 但是我的debit_user_id是空的。 […]

JAX-RS NoMessageBodyWriterFoundFailure

我的jax-rs应用程序的方法: @GET @Produces (MediaType.APPLICATION_JSON) public List getDocumentList(@HeaderParam(“Range”) String headerRange) { int [] range = getRangeFromHeader(headerRange); return facade.listByRange(range); } 好好工作。 但如果修改: @GET @Produces(MediaType.APPLICATION_JSON) public Response getDocumentList(@HeaderParam(“Range”) String headerRange) { int[] range = getRangeFromHeader(headerRange); return Response.ok( facade.listByRange(range)) .header(“Content-Range”, getContentRangeStr(range)).build(); } 我收到一个错误 …NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: java.util.ArrayList of media type: application/json… 服务器Jboss […]

Maven shade + resteasy可以找到内容类型的作家

我有一个项目可以正常使用maven托管依赖项。 但我要求将我的jar文件作为一个。 为此,我使用maven-shade插件( http://maven.apache.org/plugins/maven-shade-plugin/ )。 所有类文件都正确导出但是当我尝试运行我的应用程序时,我得到一个错误: 可以找到内容类型multipart / form-data类型的writer:org.jboss.reasteasy.plugins.provider.multipart.MultipartFormDataOutput 任何帮助都会很棒,谢谢。 注意:我遇到类似spring的问题,其主要原因是配置文件。 许多jar文件包含具有相同名称的configuraiton文件。 所有配置文件都尝试覆盖其他配置文件。 将该文件与maven-shade配置合并后问题得以解决。

如何在jersey WriterInterceptor实现中获取@interface参数

我有一个界面,例如 @NameBinding @Retention(RetentionPolicy.RUNTIME) public @interface AutoLogged { boolean query() default false; } 如何在拦截器实现中获取query参数? @Provider @AutoLogged public class AutoLoggedInterceptor implements WriterInterceptor { @Context private ResourceInfo resourceInfo; @Override public void aroundWriteTo(final WriterInterceptorContext context) throws IOException, WebApplicationException { try { final String methodName = this.resourceInfo.getResourceMethod().getName(); BasicAutoLoggedProducer.makeCall(methodName); } catch (final Exception e) { e.printStackTrace(System.err); } finally { context.proceed(); } […]

为jax rs Client设置超时

我想为jax rs客户端设置连接超时。 ClientConfig configuration = new ClientConfig(); configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000); configuration.property(ClientProperties.READ_TIMEOUT, 1000); Client client = ClientBuilder.newClient(configuration); 当我使用ClientConfig直接创建客户端时,我收到以下消息: 无法找到内容类型application / xml的MessageBodyReader并输入类.. 多数民众赞成我尝试过的。 但它不会工作,如果我尝试连接到错误的主机,它需要20秒,直到我得到ProcessingException。 我也尝试在webTarget上设置属性,它也没有帮助。 WebTarget target = client.target(protocol + “://” + host + “:” + port); target = target.path(APPLICATION_PATH + REST_PATH); target.property(ClientProperties.CONNECT_TIMEOUT, 1); target.property(ClientProperties.READ_TIMEOUT, 1);

使用JAX-RS覆盖HTTP方法

今天的浏览器(或HTML <5)仅支持HTTP GET和POST,但是为了进行RESTful通信,还需要PUT和DELETE。 如果解决方法不应该是使用Ajax,则需要使用隐藏的表单字段来覆盖实际的HTTP方法。 Rails使用以下技巧: 是否有可能与JAX-RS做类似的事情?

如何在java中公开cxf restful web服务?

是否有像Endpoint.publish(address, implementor)来公开服务? 我正在尝试在Tomcat上部署我的应用程序。 是否有任何CXF或JAX-RS类可以公开REST Web服务?

JAX-RS使用的无状态EJB中的@Context注入

我在下面有这样的设置。 这是一个简化版本,但我认为它得到了基本的想法。 我使用的是Jersey 2.16,Java 1.8和Glassfish Open Source 4.1 public interface IReportService { String addNewReport(Report report); } @Path(“reports”) public class ReportResource implements IReportService { /** * Service layer. */ @EJB private transient ReportService service; @POST @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) @Produces(MediaType.TEXT_PLAIN) @Override public String addNewReport(final Report report) { return service.addNewReport(report); } } @Stateless @LocalBean public class ReportService implements […]

Jersey beanvalidationParameterNameProvider

我正在阅读关于beanvalidation的Jersey文档。 ParameterNameProvider示例显示如何为方法定义参数名称。 但是,实现看起来必须对每个显然无法扩展的方法进行。 这个例子基本没用。 有更聪明的方法吗? Jersey不能从@QueryParam或@PathParam注释中推断出这个名字吗?