我正在尝试创建一个小程序,它将在网络上以xml格式显示外星人列表。
我有3个文件:
alienRepository class-演示数据库
Alien class
alienResource class
这就是我输入的内容:
http://localhost:8085/Rest/webapi/aliens
我在浏览器中收到以下错误:
HTTP状态500 - 内部服务器错误
服务器遇到内部错误,导致无法完成此请求。
我没有在浏览器中看到该列表,但在控制台中我看到了打印输出(" getAlien称为....."); 我做错了什么?
<?php
$host = '<your Azure linux vm host>';
$port = 22; // First enable the 22 port for Azure Linux VM
$user='<ssh user>';
$passwd='<ssh password>';
$session=ssh2_connect($host, $port);
if($session)
echo "connect successfully.\n";
if(ssh2_auth_password($session, $user, $passwd)) {
echo $user." login OK.\n";
$stream=ssh2_exec($session, "pwd");
stream_set_blocking($stream, true);
if ($stream === FALSE) die("pwd failed");
echo 'pwd: '.stream_get_contents($stream).'<br/>';
}
?>
public class AlienRepository {
List <Alien> aliens;
public AlienRepository() {
aliens = new ArrayList<>();
Alien a1 = new Alien();
a1.setName("Ohad2");
a1.setPoints(60);
a1.setId(1);
Alien a2 = new Alien();
a2.setName("Ohad");
a2.setPoints(80);
a2.setId(2);
aliens.add(a1);
aliens.add(a2);
}
public List<Alien> getAliens(){
return aliens;
}
public Alien getAlien(int id) {
for (Alien a: aliens)
{
if(a.getId() == id)
return a;
}
return null;
}
}
@XmlRootElement
public class Alien {
private String name;
private int points;
public int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPoints() {
return points;
}
public void setPoints(int points) {
this.points = points;
}
}
这是servlet映射:
@Path("aliens")
public class AlienResource {
AlienRepository repo = new AlienRepository();
@GET
@Produces(MediaType.APPLICATION_XML)
public List<Alien> getAlien() {
System.out.println("getAlien called.....");
return repo.getAliens();
}
}