Tag: restlet

Camel Restlet – 如何使用SSL公开服务

我使用最新的Apache Camel(2.14)暴露了一些REST服务,更准确地说是使用Restlet组件( http://camel.apache.org/restlet.html )。 有没有办法在HTTPS下公开服务? 我找不到任何解释如何设置SSL密钥库,密钥库密码等的文档…

RESTlet授权filter

我正在开发一个RESTlet API(JAVA),我创建了一个自定义授权filter,在将其传递给我的路由器之前运行所有请求。 在我的请求中,我总是将会话ID作为请求属性传递,例如 http://localhost:8080/myAPI/{sid}/someResource/ 现在,在扩展ServerResource的函数中,我可以做这样的事情来轻松提取{sid} : String sid = (getRequestAttributes().containsKey(“sid”)) ? getRequestAttributes().get(“sid”).toString() : “”; 我的问题是,在我的授权函数中,它扩展了Filter (授权函数不是通过路由器调用,而是在我的main createInboundRoot()函数中调用),我不能使用相同的方法来提取{sid} 。 我使用request.getResourceRef()。getSegments()的字符串操作创建了一个变通方法,但是必须有更好的方法吗? 任何帮助将不胜感激! 谢谢

使用OData时,如何加速Restlet for Android?

我试图使用Restlet for Android来查询OData数据源。 但是,我对它在仿真器和真实设备上的性能印象不深。 我在包装器AsyncTask中发出请求以使UI响应,但最终返回对象仍需要1分钟以上。 我在LogCat窗口中获得了大量这些内容: 10-04 18:20:41.667: DEBUG/dalvikvm(278): GC freed 7872 objects / 523928 bytes in 279ms 我该怎么做才能加快查询速度?

使用java中的Restlet multipart / form-data上传文件

所以我现在搜索了相当多的示例代码,但我发现的唯一的事情是服务器端的示例,这意味着接收部分 。 我想创建一个应用程序,它使用restlet上传文件,内容类型: multipart/form-data 。 所以我需要发送部分 如何为此创建表单? 我尝试的是以下,但它不起作用: public void UploadFile(File f){ Form fileForm = new Form(); fileForm.add(Disposition.NAME_FILENAME, “test.jpg”); Disposition disposition = new Disposition(Disposition.TYPE_INLINE, fileForm); FileRepresentation entity = new FileRepresentation(f, MediaType.IMAGE_ALL); entity.setDisposition(disposition); FormData fd = new FormData(“photo”, entity); FormDataSet fds = new FormDataSet(); fds.setMultipart(true); fds.setMediaType(MediaType.MULTIPART_FORM_DATA); fds.getEntries().add(fd); String url = “http://localhost/uploadFile”; Optional opJrep = m_RestClient.postJson(url,fds,MediaType.MULTIPART_FORM_DATA, Optional.empty()); […]

Python的urllib2.urlopen()挂起了与Java Restlet服务器的本地连接

我正在尝试从python连接到本地运行的Restlet服务器,但连接无限挂起(或者如果我设置超时则超时)。 import urllib2 handle = urllib2.urlopen(“http://localhost:8182/contact/123”) # hangs 如果我使用shell中的curl打开上面的URL,结果会很快返回。 如果我使用urllib2打开另一个本地服务(例如端口8000上的Django Web服务器),urllib2工作正常。 我试过禁用防火墙(我在OS X上这样做)。 我已经尝试将localhost更改为127.0.0.1。 除了用户代理之外,来自Restlet的curl和urllib2连接的日志显示相同。 我的解决方法是通过subprocess调用curl ,但我宁愿理解为什么这会失败。 以下是我的Restlet资源的外观: public class ContactResource extends ServerResource { @Get public String represent() throws Exception { return “”; } //…. } 如果您想要更多信息/代码,请告诉我

配置Restlet以在Google App Engine上返回JSP?

我开发了一个Restlet应用程序。 我想通过Restlet返回URL请求的JSP文件。 如何在不使用重定向的情况下实现此目的? 即假设我在mydomain.com上有“contact.jsp”文件,我希望人们能够访问http://mydomain.com/contact上的 contact.jsp 因此,在Restlet中,我会: router.attach(“/contact”, MyResource.class); 但是如何返回“contact.jsp”页面呢? 我知道重定向会起作用,但我不希望用户在“ http://mydomain.com/contact.jsp ”中看到“.jsp”…或者是否有其他策略可以在没有使用的情况下工作的Restlet? 也许我的web.xml文件有些修改? 编辑(2009-08-14): 我在下面发布的答案不适用于App-Engine和Restlet。 但是,如果我不包含Restlet,或者允许Restlet具有“/ *”的url模式,它确实有效 什么是理想的是有一个允许我这样做的路由器的子类: router.attach(“/contact”, “/contact.jsp”); 谢谢! 编辑(2009-08-17): 自从我发布赏金以来,我没有得到任何答复,我感到很惊讶。 如果我的问题/问题不明确,有人会发表评论并告诉我吗? 编辑(2009-08-17): 有趣的观察。 使用下面“Rich Seller”描述的方法时,它可以在Google App-Engine上部署,而不是在本地部署。 此外,如果我在Google App-Engine上调用http://mydomain.com/contact.jsp ,它会绕过Restlet并直接进入JSP。 但是,在本地,Restlet接管了。 也就是说, http:// localhost:8080 / contact.jsp没有进入JSP并转到Restlet。 部署的应用引擎应用程序对URL的响应方式与本地对应方式不同吗?

Restlet javax.net.ssl.SSLHandshakeException:null cert chain

我正在本地测试客户端和服务器之间的SSL通信。 所以我使用OpenSSL命令生成证书。 在cacert文件中添加了此证书。 还生成.p12文件。 我在服务器和客户端使用相同的.p12文件。 这是服务器代码 Server server = component.getServers().add(Protocol.HTTPS, port); Series params = server.getContext().getParameters(); params.add(“keystorePath”, “.p12 file path”); params.add(“keystoreType”, “PKCS12”); params.add(“needClientAuthentication”,”true”); component.getDefaultHost().attach(“”, “/AA”), new AAClass()); component.start(); 这是客户端代码: Client client = trustAllCerts(); clientResource = new ClientResource(url); clientResource.setNext(client); try{ clientText = clientResource.post””); } catch(ResourceException e){ e.printStackTrace(); } public Client trustAllCerts() { Client client = null; try […]

在Restlet中使用描述上传文件

我需要使用restlet 上传包含一些额外数据的文件 。 所以我创建了一个示例html页面,如下所示。 *****Upload File with RESTFul WebService***** Upload File Party ID 我需要从输入字段读取值以及文件数据。现在可以读取文件内容。我可以在同一个api调用中从该输入框中获取值。 @Post public Representation accept(Representation entity) throws Exception { Representation result = null; if (entity != null) { if (MediaType.MULTIPART_FORM_DATA.equals(entity.getMediaType(), true)) { // 1/ Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1000240); // 2/ Create a new […]

Restlet客户端如何处理媒体类型的请求?

我有几个关于Restlet客户端如何处理媒体类型标题的新手问题: 如果我传入一个类型为a)POJO或b)一个InputStream实例的实体,Restlet客户端会在’content-type’标头中放入什么? 什么是“接受”标题? 如果我想在HTTP主体中传输JSON格式的POJO,我是否需要序列化POJO并将其作为JSON字符串传递或者我可以传入POJO而Restlet将完成剩下的工作吗? 如果是前一种情况,我是否需要指定’content-type’标题以及如何? 非常感谢!

如何在Restlet 2.0中禁用日志记录?

我只想在项目中禁用Restlet的stdout / stderr日志,并通过org.restlet.ext.slf4j提供的SLF4J Facade转发所有Restlet日志。 是否有捷径可寻?