我刚发现它org.jboss.resteasy.client.ClientRequest已被弃用,使我在Google上找到的有关如何使用RESTEasy客户端的所有内容无效.在Javadoc中没有给出指示,以什么来代替使用.谷歌同样沉默.
我2.3.5现在已经恢复了,但是无论如何都会对答案感兴趣,以及如何在不问别人知道的情况下如何找到答案 - 是否有资源可以查看我所看到的信息?
我正在使用本教程中描述的身份验证/授权机制构建休息服务:http://howtodoinjava.com/2013/06/26/jax-rs-resteasy-basic-authentication-and-authorization-tutorial/
基本上它使用PreProcessInterceptor接口来扫描目标方法的注释(来自javax.annotation.security包),该方法描述了访问该方法所需的角色.由于此处的验证器是拦截器,它可以取消目标方法调用,如果需要则返回401(未授权).
这里的问题是在当前的RestEasy版本(3.0.1)中不推荐使用接口org.jboss.resteasy.spi.interception.PreProcessInterceptor,并且我在尝试使用标准JAX-RS接口实现相同的行为时遇到了问题.
我正在使用javax.ws.rs.ext.ReaderInterceptor接口来拦截调用.但不知何故,服务器从不调用它:拦截器只是被忽略了.
我正在使用与之前的PreProcessInterceptor相同的方式注册拦截器/资源,并使用相同的@Provider和@ServerInterceptor注释:
ServerApplication:
public class ServerApplication extends javax.ws.rs.core.Application {
private final HashSet<Object> singletons = new LinkedHashSet<Object>();
public ServerApplication() {
singletons.add(new SecurityInterceptor());
singletons.add( ... ); //add each of my rest resources
}
@Override
public Set<Class<?>> getClasses() {
HashSet<Class<?>> set = new HashSet<Class<?>>();
return set;
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
Run Code Online (Sandbox Code Playgroud)
SecurityInterceptor:
@Provider
@ServerInterceptor
public class SecurityInterceptor implements javax.ws.rs.ext.ReaderInterceptor {
@Override
public Object aroundReadFrom(ReaderInterceptorContext context){
//code that is …Run Code Online (Sandbox Code Playgroud) 我被要求美化默认的Jackson JSON来自RestEasy端点.我做了一些关于Jackson的研究并编写了一些独立的代码,以便能够抑制空值,自定义数据格式等.现在的挑战是在RestEasy的JSON序列化中注入此代码.
从论坛帖子来看,这在Spring中是微不足道的,但在RestEasy中似乎并非如此.我编写了一个ContextResolver并在web.xml(在Tomcat上)的上下文params中配置为resteasy.provider,但是这阻止了在Tomcat上加载webapp.
现在我正在尝试扩展javax.ws.rs.core.Application并提供一个ContextResolver但没有任何进展.这是直截了当,有没有人这样做过?任何帮助是极大的赞赏.
我正在开发一个涉及谷歌AppEngine PAAS的移动和网络客户的项目.我想在我的AppEngine应用程序中使用RESTFul webservices.
我查看了Stackoverflow对RESTFul服务框架的引用,这些框架可以与AppEngine一起用于Web(GWT)和移动(Android)客户端.虽然Restlet似乎为AppEngine,GWT和Android提供了版本,但到目前为止,我已经把它归结RestEasy为主要是由于这个问题.
以前有过讨论RESTFul框架的问题,但我不认为比较适用于这个,现在很常见的情况.听取有经验的开发人员对可用于这组平台的框架的看法以及每个平台的优点和缺点将是有帮助的.
我有一个RESTEasy Web服务器,有很多方法.我希望实现logback来跟踪所有请求和响应,但我不想添加log.info()到每个方法.
也许有办法在一个地方捕获请求和响应并记录它.也许类似于RESTEasy上的HTTP请求流程链上的过滤器.
@Path("/rest")
@Produces("application/json")
public class CounterRestService {
//Don't want use log in controler every method to track requests and responces
static final Logger log = LoggerFactory.getLogger(CounterRestService.class);
@POST
@Path("/create")
public CounterResponce create(@QueryParam("name") String name) {
log.info("create "+name)
try {
CounterService.getInstance().put(name);
log.info("responce data"); // <- :((
return new CounterResponce();
} catch (Exception e){
log.info("responce error data"); // <- :((
return new CounterResponce("error", e.getMessage());
}
}
@POST
@Path("/insert")
public CounterResponce create(Counter counter) {
try {
CounterService.getInstance().put(counter);
return new CounterResponce(); …Run Code Online (Sandbox Code Playgroud) 所以,我正在使用RESTeasy和Google App Engine开发REST Web服务.我的问题与GAE无关,但我提到它只是在重要的情况下.事实上,我需要保护我的资源和我自己的用户(不是谷歌的).
保护REST Web服务似乎是一个非常有争议的主题,或者至少是一个非常"自由"的主题.REST没有对此事项施加任何标准.根据我在网络和文献上的研究,我认为至少有3种方法可能适用于我的应用程序:
OAuth似乎是最完整的方法.但我认为不需要这么复杂,因为我不需要授权任何第三方应用程序.它是仅由我自己的客户端应用程序使用的Web服务.
HTTP Basic和HTTP Digest在Web上看起来是最简单的,但事实是我从未使用RESTeasy找到它们的具体实现,例如.我发现这个网页和这一个 RestEasy的的文档.它们确实非常有趣,但它们对此主题(HTTP Basic或Digest)几乎没有任何说明.
所以,我在这里问:
如何使用RESTeasy中的HTTP Basic或Digest保护我的WebService?
也许这很简单,在文档中或其他任何地方都不值得一提?此外,如果有人能够就保护RESTful Web服务的问题向我提供一些见解,那么它可能会有所帮助.
我选择了正确的方法吗?
(特别是RESTeasy)
对于单个文件来说,有一个方法签名是很好的:
public void upload(@FormParam("name") ..., @FormParam("file") file: InputStream)
...
Run Code Online (Sandbox Code Playgroud)
可行?还是我在做梦?似乎并不那么简单.
我正在尝试使用RESTEasy作为JAX-RS 2.0客户端实现.问题是我遇到了运行时异常:
06-28 13:29:06.410: E/AndroidRuntime(5745): Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
06-28 13:29:06.410: E/AndroidRuntime(5745): at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:103)
Run Code Online (Sandbox Code Playgroud)
所以该newBuilder()方法正在搜索JerseyClientBuilder我是否理解它是正确的.如何告诉系统使用RESTEasy?
我正在开发一个需要高可伸缩性的RESTfull应用程序.我正在考虑基于Netty的RESTfull应用程序框架.我浏览了一些可用的选项,并尝试将它们作为非阻塞实现提供.以下是我的发现:
在得到上述发现之前,我想使用一些随时可用的框架并更快地完成工作.
我知道这是一个基于意见的问题.但是,我仍然非常需要帮助为我的应用程序选择正确的框架.如果以防万一,没有基于Netty的REST框架:在我的应用程序中使用基于Netty的低级NIO代码是否明智?任何帮助赞赏.提前致谢.
我一直试图弄清楚如何使用JAX-RS很长一段时间.我从最基本的概念开始,然后逐渐理解注释风格的编程,@ Path,@ Get,@ Post等的含义.
据我所知,对于很多地方提到的内容,JAX-RS是一个专注于将Java注释应用于普通Java对象的框架(第27页,Bill Burke,RESTful Java).
然后我超越了这一点感到困惑.如果JAX-RS本身是一个定义处理注释的API以实现RESTful Web服务的框架,那么"JAX-RS的实现"的含义是什么,例如"Jersey"和"JBoos Resteasy".JAX-RS顶部的另一层?我们为什么需要它们?
有人能为我提供一些见解吗?非常感谢!!!