Tag: jersey

泽西JAX-RS服务和Tomcat 6.0中的BASIC身份validation失败

我正在尝试使用Tomcat 6.0和JAX-RS jersey实现在我的服务中进行BASIC身份validation。 以下是我遵循的实施步骤: 1)在server.xml中添加了Realm,如下所示: 我在其他JSP应用程序中使用的相同领域,它在那里工作正常。 2)下面是web.xml jersey-serlvet com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.property.packages com.infy.security com.sun.jersey.spi.container.ResourceFilters com.sun.jersey.api.container.filter.RolesAllowedResourceFilterFactory 1 jersey-serlvet /* BasicDemo /* * <!– CONFIDENTIAL –> BASIC Login 以下是服务: @Path(“/authenticate”) @RolesAllowed({“Admin”,”Guest”}) public class BasicAuthenticationSecurity { @GET @Path(“/wbiPing”) @Produces(MediaType.TEXT_PLAIN) @RolesAllowed(“Admin”) public Response wbiPing(){ System.out.println(“Pinged!!!”); return Response.ok(“Pinged!!!”).build(); } } 实现后,无论登录validation弹出窗口中的输入是什么(即使用户是“管理员”),我都会收到unauthentication错误页面。 以下是url: http://localhost:8002/BASICAuthentication/rest/authenticate/wbiping 如果我误入歧途,请告诉我。 谢谢,

如何使用带有dropwizard的自定义validation器?

我有一个由其他人编写的REST api,其中处理对特定url的请求的方法接受从路径参数填充的一堆参数。 @POST @Path(“/{classid}/{studentid}/details”) @Consumes(MediaType.MULTIPART_FORM_DATA) @SuppressWarnings(“unchecked”) public Response processFile(@FormDataParam(“sourceFile”) InputStream aStream, @PathParam(“classid”) String classId, @PathParam(“studentid”) String studentId, @Context HttpServletRequest httpRequest) { // Code to do stuff and return a response } 写这篇文章的人使用了DropWizard,我以前没有使用它的经验。 我的任务是通过将studentId字段与db中的值进行比较来validationstudentId字段。 这将非常简单,但我被告知要使用自定义validation器。 我对编写注释很新,但经过多次挖掘写了这样的注释, @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented @Constraint(validatedBy = StudentIdValidator.StudentIdValidation.class) public @interface StudentIdValidator { String message() default “{Invalid Id}”; Class[] groups() default {}; Class[] […]

如何将服务器端Jax-rs调用与没有前缀的本机文件混合使用?

我们目前正在使用Jersey JAX-RS实现来处理我们的REST请求(服务器端Jersey)。 我们的web.xml文件已配置好所有/ rest / *请求由Jersey处理。 没关系。 我们的服务器目前是Tomcat6,并使用Java6(在Ubuntu 11.04上) 所以,:// myserver / rest / customer /是好的,Jersey用@Path(“/ customer”)前缀调用该类。 现在我们也有静态内容,例如:// myserver / images / … wich加载很好。 有没有办法这样做,我们可以摆脱/ rest / *前缀并将它们混合在一起? 我们想要实现的目标:: // myserver / rest / customer /→Jersey:// myserver / rest / images /→本机图像战争目录 谢谢你的帮助

使用JSONObject放置/获取字节数组值

我尝试使用以下代码从JSONObject获取我的byte[]值,但我没有获得原始byte[]值。 JSONArray jSONArray = jSONObject.getJSONArray(JSONConstant.BYTE_ARRAY_LIST); int len = jSONArray.length(); for (int i = 0; i < len; i++) { byte[] b = jSONArray.get(i).toString().getBytes(); //Following line creates pdf file of this byte arry "b" FileCreator.createPDF(b, "test PDF From Web Resource.pdf"); } } 上面的代码创建pdf文件,但文件无法打开即损坏的文件。 当我使用相同的类和方法来创建文件时: FileCreator.createPDF(b, “test PDF From Web Resource.pdf”); 在添加到JSONObject之前,如下所示: JSONObject jSONObject = new JSONObject(); […]

Jersey / REST – NoSuchMethodError:com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava / security / PrivilegedAction;

尝试使用jersey构建REST服务时,我得到了NoSuchMethodError。 任何帮助将非常感激。 我的POM.xml: com.sun.jersey jersey-core 1.19 com.sun.jersey jersey-servlet 1.19 com.sun.jersey jersey-client 1.19 我的web.xml: Rest com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.property.packages com.example.serversideauthservice.resources.AuthResource 1 Rest /auth/* 不确定我做错了什么,但当我检查API文档时,似乎我在mvn dependancies中有正确的版本。 这是运行时的堆栈跟踪。 [INFO] INFO: Scanning for root resource and provider classes in the packages: [INFO] com.example.serversideauthservice.resources.AuthResource [INFO] Feb 21, 2015 2:35:26 PM com.google.apphosting.utils.jetty.JettyLogger warn **[INFO] WARNING: failed Rest: java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;** [INFO] Feb 21, 2015 […]

使用带有标头的REST客户端时获取ssl.SSLHandshakeException但与PostMan一起正常工作

我有一个外部REST资源,其中包含以下细节: url: abc.com/orders (域名为https ) 我需要将UserID作为HTTP标头传递,密钥“user”值为“abcd” 这将返回JSON响应 我正在使用Java代码以下: try { Client client = Client.create(); WebResource webResource = client.resource(“abc.com/orders”); ClientResponse response = webResource.header(“user”, “abcd”).accept(“application/json”) .get(ClientResponse.class); if (response.getStatus() != 200) { throw new RuntimeException(“Failed : HTTP error code : ” + response.getStatus()); } String output = response.getEntity(String.class); System.out.println(“Output from Server …. \n”); System.out.println(output); } catch (Exception e) […]

使用Jersey ContainerRequestFilter时获取root. cause java.lang.AbstractMethodError

INFO: Server startup in 6705 ms Nov 29, 2013 6:17:38 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [JerseyServlet] in context with path [/jersey_project] threw exception [Servlet execution threw an exception] with root cause java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:649) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) […]

使用Jersey Rest测试框架和Mockito进行unit testing

有人可以帮我这个吗? 我正在使用Jersey rest测试框架版本2.21为Rest资源编写unit testing。(在Grizzly容器上)。 当我调试测试类时,我看到myManager的模拟对象。 但是当调试进入我的“MyResouce类”时,myManager对象变为null并获得NullPointerexception。 尝试过不同的人提供的解决方案,但没有运气。有人可以帮助我。 我差不多三天就遇到了这个问题。 🙁 我的资源类是这样的。 @Component @Path(“/somepath”) public class MyResource { @Autowired private MyManager myManager; @Path(“/somepath”) @GET @Produces(“application/json”) @ResponseType(String.class) public Response getResults(@QueryParam(“queryParam”) String number) { // myManager is an interface String str = myManager.getResult(number); } } 这是我的测试类 public class MyResourceTest extends JerseyTest { @Mock private MyManager myManager; @InjectMocks private MyResource […]

Java RESTful Jersey示例?

是否有任何示例演示使用Java和Jersey执行客户端服务器通信? 比如相互发送XML数据?

如何定义在JEE中处理多部分数据的JAX-RS服务?

这是我到目前为止: 这初始化了我的REST服务 package com.dothatapp.web.rest; import javax.servlet.annotation.MultipartConfig; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application; @ApplicationPath(“/authed/rest”) public class JaxRsActivator extends Application { } 这就是我的服务: import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; import org.json.JSONObject; @Path(“fileupload”) public class FileUpload { @Context private UriInfo context; @POST @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.APPLICATION_JSON) public JSONObject doUpload(@Context HttpServletRequest obj) { […]