标签: restlet

如何使用JAXRS和JAXB设置Restlet服务器?

我一直在互联网上寻找一个如何做到这一点的例子.我只想设置一个REST服务器,它自动将对象与XML进行序列化.我只是尝试提供一个服务器,只有在用户登录后才能使用户登录,注销和访问XML对象列表.获得一个简单的示例应用程序需要什么?

我没有理解Restlet库的工作方式,而且我完全不习惯使用JAXB和JAXRS.我参与了一个使用这些库的项目,但仅从客户的角度来看.

rest jax-rs jaxb restlet

2
推荐指数
1
解决办法
3610
查看次数

在Java App服务器中部署的Restlet RIAP协议

我已使用ServerServlet机制将我们的Restlet服务部署到Jetty Java Application服务器.一些服务是从GWT前端调用的,但我还需要直接从我们的服务器逻辑中调用它们.

的Restlet RIAP系统似乎为这个完美的,但我不知道如何在这里使用.似乎我需要以某种方式阻止Restlet组件的Context.

我发现一个帖子表明RiapServerHelper对此很有用.但我没有找到关于如何使用它的文档.任何例子都会有所帮助.

java restlet restlet-2.0

2
推荐指数
1
解决办法
711
查看次数

HttpClient:禁用分块编码

我使用Apache Commons HttpClient和Restlet来调用一个宁静的Web服务.不幸的是,我的服务器(基于Ruby on Rails)不喜欢Transfer-Encoding: chunkedHttpClient默认使用的服务器.

有没有办法禁止从客户端使用分块编码的POST?

java http restlet apache-commons-httpclient

2
推荐指数
2
解决办法
1万
查看次数

Restlet响应类型

如何以所需格式返回Restlet响应?我使用的方法:

@Get ("json")
public Address sendResponse(){
    Address add = getAddress();
    return add;
}
Run Code Online (Sandbox Code Playgroud)

现在我必须显式地将java对象转换为json字符串作为对浏览器的响应.Restlet框架本身不能照顾它吗?

Spring MVC的Restful实现可以做到.我也在Restlet中寻找类似的实现.

java rest web-services spring-mvc restlet

2
推荐指数
1
解决办法
6360
查看次数

ArrayList <Object> JSON

我试图用我的restlet返回JSON数据.我可以返回单个项目的JSON ...

import org.json.JSONObject;

Site aSite = new Site().getSite();   
JSONObject aSiteJson = new JSONObject(aSite);
return aSiteJson.toString();
Run Code Online (Sandbox Code Playgroud)

返回:{"name":"qwerty","url":"www.qwerty.com"}

我如何为ArrayList对象返回JSON

ArrayList<Site> allSites = new SitesCollection().getAllSites();   
JSONObject allSitesJson = new JSONObject(allSites);
return allSitesJson.toString();
Run Code Online (Sandbox Code Playgroud)

返回:{"empty":false}

ArrayList<Site> allSites = new SitesCollection().getAllSites();   
JSONArray allSitesJson = new JSONArray(allSites);
return allSitesJson.toString();
Run Code Online (Sandbox Code Playgroud)

返回:["com.sample.Site@4a7140","com.sample.Site @ 1512c2e","com.sample.Site@2bba21","com.sample.Site@c8d0b7"]

这是我的Site类

public class Site {
private String name;
private String url;

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getUrl() {
    return url;
} …
Run Code Online (Sandbox Code Playgroud)

java json restlet

2
推荐指数
1
解决办法
3万
查看次数

谁初始化@Post(或任何jax rs注释)执行的方法中的参数?

我在休息服务中看到了以下代码片段

    @POST
    @Consumes("application/xml")
    @Path("/ProjectConfiguration/{onetimetoken}")
    public void createProjectConfiguration(@PathParam("onetimetoken") String oneTimeToken,
            CreateProjectConfigurationRequest request) throws IntegratedAppFault {
        // NOOPS
    }
Run Code Online (Sandbox Code Playgroud)

在这个变量值中,oneTimeToken由路径中的内容初始化.但我怀疑的是如何初始化CreateProjectConfigurationRequest类型的请求对象.我们如何自由地在这些方法中拥有任何参数.这是怎么回事?如何保证初始化.

java rest jax-rs restlet resteasy

2
推荐指数
1
解决办法
518
查看次数

使用另一个JDK编译Maven依赖项

我有一个使用JDK 1.5的项目(由于项目遗留),我想使用Restlet.目前我在我的pom.xml中获得了当前的构建部分:

<build>

    <plugins>
        [...]
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>2.3.1</version>
           <configuration>
               <source>1.5</source>
               <target>1.5</target>
           </configuration>
       </plugin>       
    </plugins>

  </build>

  <repositories>
        <repository>
            <id>maven-restlet</id>
            <name>Restlet repository</name>
            <url>http://maven.restlet.com</url>
        </repository>
    </repositories>

    <properties>
        <restlet-version>2.2.1</restlet-version>
        <spring-version>3.1.1.RELEASE</spring-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet</artifactId>
            <version>${restlet-version}</version>
        </dependency>
        <dependency>
            <groupId>org.restlet.jse</groupId>
            <artifactId>org.restlet.ext.jackson</artifactId>
            <version>${restlet-version}</version>
        </dependency>
    </dependencies>
Run Code Online (Sandbox Code Playgroud)

当我在mvn installEclipse中运行时,出现以下错误:

[ERROR] src/main/java/com/****/SomeFile.java:[3,-1] cannot access org.restlet.Component
bad class file: ****\.m2\repository\org\restlet\jse\org.restlet\2.2.1\org.restlet-2.2.1.jar(org/restlet/Component.class)
class file has wrong version 50.0, should be 49.0
Run Code Online (Sandbox Code Playgroud)

我理解错误是因为我正在尝试使用Java 5编译项目但使用Java 6库.如何使用JDK 1.5来使用或编译我的依赖项?

java eclipse restlet maven

2
推荐指数
1
解决办法
872
查看次数

在RESTLET中读取Web-INF中的配置文件

我正在尝试读取放置在WEB-INF根路径中的配置文件.该应用程序正在使用RESTLET框架.我在官方RESTLET 文档中读到可以使用Context.getClientDispatcher()通过WAR连接器("war:///WEB-INF/web.xml")读取文件.

但是我无法弄清楚如何实现这一目标.请告诉我这个或任何其他方式使用RESTLET读取文件

java servlets restlet restlet-2.0

2
推荐指数
1
解决办法
516
查看次数

Restlet CorsFilter与ChallengeAuthenticator

我正在使用Restlet框架构建RESTful API,并且需要它来处理跨域调用(CORS)以及基本身份验证.

目前我正在使用CorsFilter,它负责使我的webservice支持CORS请求.但是,当我尝试使用带有HTTP基本身份验证的简单ChallengeAuthenticator时,它将无法正常工作(来自网站).

当我直接通过Chrome访问网络服务时,它按预期工作,但是当我在一个用angularjs(jquery/javascript)编写的小型Web应用程序中尝试它并尝试访问web服务时,它没有.

基本上会发生的事情是,当OPTIONS请求发送到我的Web服务时,它不会响应标题:'Access-Control-Allow-Origin','Access-Control-Allow-Credentials'等应该如此.相反,它发送一个HTTP状态代码401的响应,表示身份验证失败.这是因为身份验证器以某种方式覆盖了CorsFilter吗?

我的createInboundRoot方法如下所示.

@Override
        public Restlet createInboundRoot() {
            ChallengeAuthenticator authenticator = createAuthenticator();
            RoleAuthorizer authorizer = createRoleAuthorizer();
            Router router = new Router(getContext());
            router.attach("/items", ItemsServerResource.class);
            router.attach("/items/", ItemsServerResource.class);
            Router baseRouter = new Router(getContext());

            authorizer.setNext(ItemServerResource.class);
            authenticator.setNext(baseRouter);

            baseRouter.attach("/items/{itemID}", authorizer);
            baseRouter.attach("", router);
            // router.attach("/items/{itemID}", ItemServerResource.class);

            CorsFilter corsFilter = new CorsFilter(getContext());
            corsFilter.setNext(authenticator);
            corsFilter.setAllowedOrigins(new HashSet(Arrays.asList("*")));
            corsFilter.setAllowedCredentials(true);
            return corsFilter;
        }
Run Code Online (Sandbox Code Playgroud)

(授权者和身份验证者代码取自"官方"重定向指南,用于授权和身份验证)

我已经对我的代码进行了很多更改,但没有一个给我任何运气.但我注意到,当在ChallengeAuthenticator中将参数"optional"设置为true("表示身份验证成功是否可选")时,CorsFilter会完成其工作,但很明显,ChallengeAuthenticator不关心对客户端进行身份验证,并允许任何使用受保护的内容资源..

有人有过类似的问题吗?或者您是否以任何其他方式解决了这个问题(在Restlet中进行CORS +身份验证)?

提前致谢!

authentication restlet cors angularjs

2
推荐指数
1
解决办法
607
查看次数

Gradle不会解决依赖(Maven会)

我的项目通过gradle配置了依赖项.我想添加以下依赖项:

compile group: 'org.restlet.jse', name: 'org.restlet.ext.apispark', version: '2.3.1'
Run Code Online (Sandbox Code Playgroud)

哪个可以在以下存储库中找到(我已添加到我的build.gradle中):

maven {
    url "http://maven.restlet.org"
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我收到以下错误:

Could not find org.restlet.jse:org.restlet.lib.swagger-models:1.5.0-SNAPSHOT.
http://maven.restlet.org/org/restlet/jse/org.restlet.lib.swagger-models/1.5.0-SNAPSHOT/maven-metadata.xml
http://maven.restlet.org/org/restlet/jse/org.restlet.lib.swagger-models/1.5.0-SNAPSHOT/org.restlet.lib.swagger-models-1.5.0-null-null.pom
http://maven.restlet.org/org/restlet/jse/org.restlet.lib.swagger-models/1.5.0-SNAPSHOT/org.restlet.lib.swagger-models-1.5.0-null-null.jar
Required by: org.restlet.jse:org.restlet.ext.apispark:2.3.1
Run Code Online (Sandbox Code Playgroud)

我可以看到jar实际上是在存储库中,但Gradle并没有在正确的位置寻找它,原因我不知道.为什么它不使用文件名中的版本而是1.5.0-null-null.

我创建了一个Maven项目,它具有在pom.xml中定义的相同依赖关系.

链接到具有相同依赖关系的工作pom.xml

如何解决这个问题?我在这一点上也有趣于更多的手动解决方案:)谢谢.

java restlet gradle maven-3 maven

2
推荐指数
1
解决办法
2031
查看次数