我已经开始自我介绍REST了.我用作REST框架Restlet.我已经使用几种响应格式定义了一个带有GET方法的资源
@Get("xml")
@Get("json")
Run Code Online (Sandbox Code Playgroud)
我现在想用我的浏览器测试我定义的响应格式,但我不知道我必须在我的URL中指定哪个参数来获取格式.就像是:
http://localhost:8182/members?type=xml
Run Code Online (Sandbox Code Playgroud)
我尝试了一些param-names,但是我找不到合适的param-name.我知道必须有这样一个参数,因为我已经在URL中看到过它,但我忘记了名字而无法在网上找到它.使用restlet时该参数的名称如何?
如果有人可以帮助我,我会很高兴,谢谢,马丁
我们正在计划一个主要用于JSON响应的新API服务器,它具有RESTful接口.我们关注规模和可用性.我们是否使用Restlet with Jetty(或其他连接器)在正确的轨道上?
我们要问的一个问题是,Java世界中有什么像Phusion Passenger?例如,一个预先构建的解决方案,用于保持服务器实例正常运行?
我正在尝试使用Restlet 2.1检索序列化类,其中Android作为客户端,GAE作为服务器.这是相关代码:
ClientResource cr = new ClientResource("http://localhost:8888/mydata");
// Get the MyData object
MyDataResource resource = cr.wrap(MyDataResource.class);
MyData myData = resource.retrieve();
Run Code Online (Sandbox Code Playgroud)
我最初在一个独立的JSE类中进行了测试,一切正常.当我尝试在Android中运行相同的东西时,myData对象为null.有任何想法吗?
我一直在网上寻找如何将参数传递给RESTlet webservice,但似乎没有太多关于RESTlet的教程.
我想从我的Android应用程序中的表单发送一些参数(如果我可以使用JSON这样做会很棒).
我想创建一个servlet作为一堆restlet应用程序的容器.我已经为一个restlet应用程序完成了servlet,但是我没有看到如何修改web.xml以适应许多应用程序.这是一个单独的restlet的web.xml :(几乎逐字地从"Restlet in Action MEAP"中获取):
<?xml version="1.0" encoding="UTF-8"?>
...
<display-name>Servlet engine as a container of Restlet applications</display-name>
<servlet>
<servlet-name>CompanyServerApplication</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>server.CompanyServerApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CompanyServerApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud) 这个问题可能看起来很愚蠢,但对我来说,循环引用是例如对象 A 引用对象 B 而对象 B 引用对象 A。
我正在使用一个 android 应用程序与一个带有 objectify DB 的 GAE 服务器进行通信。
我的模型很简单,但出现错误:
org.codehaus.jackson.map.JsonMappingException: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->com.my.model.MyMessage["senderKey"]->com.googlecode.objectify.Key["root"])
Run Code Online (Sandbox Code Playgroud)
这是我的模型:MyMessage 指的是 MyUser(MyUser DOESNT 指的是 MyMessage...
这是代码:
public class MyMessage implements Serializable {
private static final long serialVersionUID = -1075184303389185795L;
@Id
private Long id;
@Unindexed
private String sendMessage;
@Unindexed
private String answerMessage;
private MessageStatus status = MessageStatus.FREE;
@Parent
Key<MyUser> senderKey;
Key<MyUser> answererKey;
@SuppressWarnings("unused")
private MyMessage() {
}
public MyMessage(MyUser user, String message) { …Run Code Online (Sandbox Code Playgroud) 我写了一个类,它将被 xstream 转换为 xml 。
我添加了 @XStreamAsAttribute 来添加 xmlns 作为属性。但它被添加为输出中的嵌套标签
我的类文件如下
@XStreamAlias("GetConfigurationParametersResponse")
public class GetConfigurationParametersResponse
extends BaseResponse
{
@XStreamAlias("xmlns")
@XStreamAsAttribute
final String xmlns = "http://www.collab.net/teamforge/integratedapp";
@XStreamAlias("xmlns:ns2")
@XStreamAsAttribute
final String ns2="http://www.collab.net/teamforge/integratedapp";
@XStreamImplicit(itemFieldName="ConfigurationParameter")
protected List<ConfigurationParameter> configurationParameter;
public List<ConfigurationParameter> getConfigurationParameter() {
if (configurationParameter == null) {
configurationParameter = new ArrayList<ConfigurationParameter>();
}
return this.configurationParameter;
}
}
Run Code Online (Sandbox Code Playgroud)
输出如下
<com.collabnet.teamforge.ia.GetConfigurationParametersResponse>
<xmlns>http://www.collab.net/teamforge/integratedapp</xmlns>
<ns2>http://www.collab.net/teamforge/integratedapp</ns2>
</com.collabnet.teamforge.ia.GetConfigurationParametersResponse>
Run Code Online (Sandbox Code Playgroud)
但我需要输出为
<com.collabnet.teamforge.ia.GetConfigurationParametersResponse xmlns="http://www.collab.net/teamforge/integratedapp" xmlns:ns2="http://www.collab.net/teamforge/integratedapp">
</com.collabnet.teamforge.ia.GetConfigurationParametersResponse>
Run Code Online (Sandbox Code Playgroud)
请帮助找出我哪里出错了。我跟着这个教程http://x-stream.github.io/annotations-tutorial.html
所以我明白你是在指定类型,但为什么呢?在什么条件下会很重要.例如,如果我有以下方法,并且我注释掉@Produces注释,它仍然返回JSON.
@GET
@Path("/json")
//@Produces({MediaType.APPLICATION_JSON})
public String getJson(){
return toJson(getResults());
}
Run Code Online (Sandbox Code Playgroud)
API文档说'如果没有指定,那么容器将假定可以生成任何类型.' 那么为什么我不想让容器承担这个呢?
什么可能导致此错误?
Caused by: jakarta.servlet.UnavailableException: Servlet class org.restlet.ext.servlet.ServerServlet is not a jakarta.servlet.Servlet
at org.eclipse.jetty.servlet.ServletHolder.checkServletType (ServletHolder.java:499)
at org.eclipse.jetty.servlet.ServletHolder.doStart (ServletHolder.java:377)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:96)
at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$2 (ServletHandler.java:699)
at java.util.stream.SortedOps$SizedRefSortingSink.end (SortedOps.java:357)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining (StreamSpliterators.java:312)
at java.util.stream.Streams$ConcatSpliterator.forEachRemaining (Streams.java:735)
at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:658)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:724)
Run Code Online (Sandbox Code Playgroud)
我正在从mvn jetty:run插件运行网络应用程序
如何在Restlet(谷歌应用引擎版本2.0)中设置内容类型?在这种情况下,我想将内容类型设置为""text/xml".
我有:
public class SubResource extends ServerResource {
@Get
public Representation get(Representation representation){
setStatus(Status.SUCCESS_OK);
StringRepresentation sr = new StringRepresentation(getSomeXml());
return sr;
}
}
Run Code Online (Sandbox Code Playgroud)
即使它是在Representation中设置的值,或者它是从ServerResource类设置的方式与返回代码相同,我也不确定.
StringRepresentation sr = new StringRepresentation(getSomeXml());
sr.setMediaType(MediaType.TEXT_XML);
Run Code Online (Sandbox Code Playgroud)
restlet ×10
java ×5
android ×2
json ×2
rest ×2
content-type ×1
jax-rs ×1
jaxb ×1
jetty ×1
objectify ×1
scalability ×1
servlets ×1
url ×1
web-services ×1
xstream ×1