Tag: jersey 2.0

Jersey 2.x安全上下文不起作用?

虽然我正在尝试创建java jersey应用程序身份validation角色对我来说不起作用。 Java代码: – package org.student.resource; import javax.annotation.security.PermitAll; import javax.annotation.security.RolesAllowed; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.ext.Provider; @Path(“/resource”) @PermitAll public class Resource { @GET public String get(){ return “GET”; } @RolesAllowed(“admin”) @POST public String post(){ return “Post content.”; } } 部署描述符: – JerseyAuthentication Application org.glassfish.jersey.servlet.ServletContainer Application /* Resource /resource/* GET login.html 标题: – Cache-Control […]

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 1.x迁移到jersey 2.x时的NoClassDefFoundError ProcessingException(2.8)

我开发了一个网络服务应用程序,它与jersey 1.x(1.16)工作得很好我最近尝试迁移到最新的稳定版jersey版本2.8 我删除了v1.16的所有jersey jar文件然后我从链接下载了v2.8的jersey jars: https: //jersey.java.net/download.html 根据文档我知道,我应该有最新的servlet jar,servlet jar 2.5或更高版本,所以我下载了servlet-api-2.5.jar并将其添加到/ libs文件夹中。 我下载了javax.ws.rs-api-2.0-m09.jar并将其添加到/ libs我还将最新的jettison v 1.3.3添加到/ libs 但是我在tomcat7上运行时遇到exception,如下所示从jersey 1.x迁移到2.x的确切步骤是什么? 这里缺少什么? 我的Web.xml如下所示 com.tempWSJersey2.WebServices Temp REST Service org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provider.packages com.temp 1 Temp REST Service /* 例外的是 – SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/tempWSJersey2]] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) […]

如何将Grizzly请求注入Jersey ContainerRequestFilter

我有泽西由Grizzly提供。 我有一个ContainerRequestFilter实现类。 但是,为所有传入请求创建此类一次。 因此这样做: public class EndpointRequestFilter implements ContainerRequestFilter { @Context private org.glassfish.grizzly.http.server.Request requestContext; public void filter( ContainerRequestContext req ) throws IOException { // remove for sake of example } } requestContext为null。 我可以将上下文注入到被调用的实际端点中,但这是相当粗糙和丑陋的,对我来说真的没用; 因为我想记录各种要求。 理想情况下,希望在Request的ResponseFilter端获取此Request对象。 必须有一种简单的方法来做到这一点。 到目前为止,我看到的所有问题/答案都不适用于Grizzly或注入REST端点调用的方法。 我不想绕过我所有的数百种方法,只是因为我想得到IP地址! 那么这里的关键是什么? 我错过了什么?

Jetty服务器配置

我使用Jetty 9并且在配置方面存在一些问题。 我简单的REST工作正常。 但是当我尝试向所有请求和error handling程序添加新标头时,问题就开始了。 我只能通过将此代码添加到每个响应来处理标头: return Response.ok(murals) .header(“Access-Control-Allow-Origin”, “*”) .header(“Access-Control-Allow-Methods”, “GET, POST, DELETE, PUT”) .build(); 服务器配置: Server server = new Server(9998); ServletContextHandler servletContextHandler = new ServletContextHandler(server, “/”, ServletContextHandler.SESSIONS); servletContextHandler.addFilter(GuiceFilter.class, “/*”, EnumSet.allOf(DispatcherType.class)); servletContextHandler.addServlet(DefaultServlet.class, “/”); ResourceConfig rc = new ResourceConfig() .register(FilterHeaders.class) .register(ExceptionNotFound.class) .register(CORSFilter.class); //doesnt work new ServletHolder(new ServletContainer(rc)); HandlerWrapper han = new HandlerWrapper(); han.setHandler(new AbstractHandler() { […]

如何在HBase中实现分页?

我是Hbase的新手,我需要使用Java和Jersey以及Hbase作为我的数据库来实现分页。 我需要一些帮助,我怎样才能实现与Hbase的分页,因为数据将在不同地区之间分配。 我想每页显示1000条记录。 请告诉我如何在不使用任何filter的情况下实现此目的。 真的很感激。

使用自定义hk2 InjectionResolver注入应用程序配置

跟我上一个问题有所帮助。 我正在尝试使用JSR-330标准注释和与泽西捆绑的HK2框架注入应用程序配置数据。 理想情况下,我想为Named注释创建一个自定义的InjectionResolver ,它将在Map或Properties对象中查找所需的值,我将从其他地方读取的数据填充该值。 在我的第一次尝试中,我创建了一个类似的Application实例 public class MyApplication extends ResourceConfig { … packages(MY_PACKAGES); property(MY_CONFIG_PROPERTY, someValue); register(new AbstractBinder() { @Override protected void configure() { bind(ConfigurationInjectionResolver.class) .to(new TypeLiteral<InjectionResolver>(){}) .in(Singleton.class) } }); } 然后我的InjectionResolver看起来像 public class ConfigurationInjectionResolver implements InjectionResolver { @Context Application application; @Override public Object resolve(Injectee injectee, ServiceHandle serviceHandle) { // lookup data in application.getProperties(); } } […]

在Jersey2中使用@Immediate注释

我有一个与此处提出的问题类似的问题: 如何让我的Jersey 2端点在启动时急切地初始化? 但稍微下线了。 我可以立即加载我的资源,但是当我尝试通过调用REST url来使用它时,我得到以下堆栈跟踪。 java.lang.IllegalStateException: Could not find an active context for org.glassfish.hk2.api.Immediate 2. java.lang.IllegalStateException: While attempting to create a service for SystemDescriptor( implementation=com.service.MyResource contracts={com.service.MyResource} scope=org.glassfish.hk2.api.Immediate qualifiers={} descriptorType=CLASS descriptorVisibility=NORMAL metadata= rank=0 loader=null proxiable=null proxyForSameScope=null analysisName=null id=150 locatorId=0 identityHashCode=1249600275 reified=true) in scope org.glassfish.hk2.api.Immediate an error occured while locating the context 我的TResource类因此被注释: @Immediate @Path(“/test/v1”) public […]

使用Jersey序列化Java 8流

如何使用Jersey序列化Java 8 java.util.Stream 。 我尝试编写MessageBodyWriter ,但我需要知道如何使用新的MessageBodyWriter为我的Stream编写(修饰)现有的MessageBodyWriters 。 Stream get(){ return some stream of strings } public class StreamMessageBodyWriter<Stream> implements MessageBodyWriter<Stream> { public void writeTo(…….){ //How can I get the handle to MessageBodyWriter that will write for type T, //so that I can ‘collect’ the ‘java.util.Stream’ and write it to //OutputStream } }

分段上传到appengine

我有关于appengine(java / jersey)的多个问题,但现在我很难通过multipart上传文件。 我读过这个答案: https : //stackoverflow.com/a/31325201 它适用于localhost,但是当我上传到appengine时,它在启动服务器时显示相同的错误: java.lang.SecurityException: Unable to create temporary file 有谁知道它为什么会这样? 谢谢!