我用两个资源创建了一个简单的REST服务。第一个资源工作得很好,只返回MediaType。纯文本。
对于第二个资源,我想尝试将POJO映射到Java,并遵循以下示例:
https://github.com/jersey/jersey/tree/2.3.1/examples/json-moxy/src/main/java/org/glassfish/jersey/examples/jsonmoxy
我的testbean定义为:
@XmlRootElement
public class Company {
public String name;
public String symbol;
public String country;
public Company(String name, String symbol,
String country) {
this.name = name;
this.symbol = symbol;
this.country = country;
}
public String getName() {
return name;
}
public String getSymbol() {
return symbol;
}
public String getCountry() {
return country;
}
}
资源也是微不足道的:
@Path("company/{name}")
public class CompanyResource {
private Map<String, Company> companies;
public CompanyResource() {
companies = new LinkedHashMap<String, Company>();
companies.put("Apple", new Company("Apple Inc.", "AAPL", "USA"));
companies.put("Microsoft", new Company("Microsoft Corp.", "MSFT", "USA"));
companies.put("Honda", new Company("Honda Motor Co Ltd", "HMC", "Japan"));
companies.put("Random", new Company("Random Inc.", "RND", "Undefined"));
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Company getCompany(@PathParam("name") String name) {
Company cmp = companies.get(name);
if (cmp == null) {
return companies.get("Random");
}
return cmp;
}
}
我已经调试了一个请求,并毫无问题地到达了返回语句。然而,从这里,我认为抛出了一个JAXBException,但我无法查看详细信息,并且任何地方的任何日志中都没有出现任何内容。所发生的只是浏览器显示了一条“内部服务器错误500”消息。
在监控配置下,我绝望地将一切设置为高水平。仍然什么也没有出现。
我发现的唯一相似的问题是jax rs 2.0和Glassfish 4无法将JSON@消费到Pojo和jax rs Jersey JSON中--
对于客户端,我只是使用谷歌浏览器和“高级REST客户端”应用程序。
任何帮助将不胜感激。
一个可能发生的问题——不幸的是记录不足:
如果您声明一个字段“transient”,请不要用“transient”注释它<代码>瞬态字段实际上是xml瞬态的,您不再需要注释。
当我违反这条规则时,在一个字段桌面上发生了这种情况:
2016-11-30T14:09:33.731-0500|Severe:
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: IllegalAnnotationException
Transient field "desk" cannot have any JAXB annotations.
this problem is related to the following location:
at @javax.xml.bind.annotation.XmlTransient()
at my.package.Desk
尝试将参数“name”放在方法中,而不是类中,如下所示:
@Path("company")
public class CompanyResource {
private Map<String, Company> companies;
public CompanyResource() {
companies = new LinkedHashMap<String, Company>();
companies.put("Apple", new Company("Apple Inc.", "AAPL", "USA"));
companies.put("Microsoft", new Company("Microsoft Corp.", "MSFT", "USA"));
companies.put("Honda", new Company("Honda Motor Co Ltd", "HMC", "Japan"));
companies.put("Random", new Company("Random Inc.", "RND", "Undefined"));
}
@GET @PathParam("{name}")
@Produces(MediaType.APPLICATION_JSON)
public Company getCompany(@PathParam("name") String name) {
Company cmp = companies.get(name);
if (cmp == null) {
return companies.get("Random");
}
return cmp;
}
}
如果您想按显示的方式使用它,则必须添加一个以“name”作为字段的构造函数:
public CompanyResource(@PathParam("name") String name) {
this.name = name;
}
您需要在您的公司类上提供一个无参数构造函数。如果您想限制谁可以访问构造函数,可以将其设置为私有。
private Company() {
}
问题内容: 我用两个资源创建了一个简单的REST服务。第一个资源很好用,只返回MediaType.TEXT_PLAIN。 对于第二个资源,我想尝试将POJO映射到Java并遵循以下示例: https://github.com/jersey/jersey/tree/2.3.1/examples/json- moxy/src/main/java/org/glassfish/jersey/example
问题内容: 我正在尝试为这个工作中的项目学习AJAX。我有一个网站加载病人正在服用的药物。 我递归调用此AJAX函数,以便它将附加一个包含单种药物和7天历史记录的新表。我在使代码在FF和IE中执行时遇到问题。在chrome中效果很好。我有显示xmlhttp.status的警报,这是我得到的: xmlhttp.status == 500(内部服务器错误)。 我注释掉了所有递归,因此将其范围缩小到了这
我收到以下错误 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。 请联系服务器管理员,webmaster@strivemedicare.in并告知他们错误发生的时间,以及可能导致错误的任何行为。 有关此错误的详细信息,请参阅服务器错误日志。 此外,尝试使用错误文档处理请求时遇到 500 内部服务器错误错误。
我一直试图在nginx上安装CakePHP,但我遇到了一个死胡同。尝试访问web根目录时,我收到一个500内部服务器错误。我在我的错误中得到了这个错误。日志: PHP消息:PHP致命错误:require():无法打开required'/var/www/html/test/vendor/autoload。php'(include_path='。:/usr/share/php:/usr/share/p
我想用ajax向laravel中的控制器发送post请求。ajax请求发送两个输入参数,我希望controller在数据库中找到包含第一个参数的列,然后使用第二个输入参数设置name属性。但是我在控制台500中有这个错误消息(内部服务器错误)。 Ajax功能: 路线: 控制器功能: 而且我导入csrf无处不在,因为上次当我做AJAX调用我有这个csrf的问题,下面的代码已经修复了我的问题,但现在不
所以我用拉雷维尔和护照,我有问题。当我向我的AuthController@login这是给我一个500内部服务器错误。以下是我的工作内容 我将laragon与apache服务器和mysql一起用于Environment。我可以毫无问题地向我的注册路径发出请求,但我的登录路径一直失败。不确定我错过了什么 这是我的AuthController。php 这是我存储在中的变量。环境文件 这是我的api路由