Restful Webservice,Tomcat错误500
问题描述:
我得到以下问题。 Iam使用java和tomcat编写Restful应用程序。沙发这工作正常。例如:Restful Webservice,Tomcat错误500
@GET
@Path("/String/")
@Produces(MediaType.APPLICATION_JSON)
public String getText()
{
String data = dothat();
return data;
}
(dothat();连接到java服务器,获取一个字符串并返回它)。当我在浏览器中调用这个方法时,我可以看到返回的字符串。
然而,当我得到一个littlebit更加复杂,在列表中使用自己的类,如:
@GET
@Path("/test/")
@Produces(MediaType.APPLICATION_XML)
static public Response test3()
{
List<GpioPin> list = new ArrayList<GpioPin>();
GpioPin one = new GpioPin(0, "HIGH", "GPIO-5");
GpioPin two = new GpioPin(1, "LOW", "GPIO-1");
list.add(one);
list.add(two);
GenericEntity<List<GpioPin>> result = new GenericEntity<List<GpioPin>>(list) {
};
return Response.status(Status.OK).entity(result).build();
}
我得到一个错误500代码返回。
MYCLASS GpioPin:
@XmlRootElement
public class GpioPin implements Serializable
{
/**
*
*/
private static final long serialVersionUID = -7583074316192202903L;
private int boardPosition;
private String gpioStatus;
private String gpioPort;
public GpioPin(int pos,String pinstate,String gpioPo)
{
boardPosition=pos;
gpioStatus=pinstate;
gpioPort=gpioPo;
}
public int getBoardPosition() {
return boardPosition;
}
public void setBoardPosition(int boardPosition) {
this.boardPosition = boardPosition;
}
public String getGpioStatus() {
return gpioStatus;
}
public void setGpioStatus(String gpioStatus) {
this.gpioStatus = gpioStatus;
}
public void setGpioPort(String gpioPort) {
this.gpioPort = gpioPort;
}
public String getGpioPort() {
return gpioPort;
}
}
关于这个奇怪的一部分:我没有得到任何错误信息......无论是在下面也不能从事由Tomcat的所有日志createt的brwoser IMG。
在阅读了关于登录Tomcat的几个线程后,我设法将日志记录交换到log4j。但是在调试级别上的log4j也不会告诉我有关错误的任何信息。
我无法解决这个问题。有人有想法吗?
答
您肯定需要更正日志记录,因为这会为您提供有关问题的线索。
我会在黑暗中拍摄一张照片,并说您需要从test3()方法中删除“静态”关键字。所以它看起来像这样:
@GET
@Path("/test/")
@Produces(MediaType.APPLICATION_XML)
public Response test3()
{
List<GpioPin> list = new ArrayList<GpioPin>();
GpioPin one = new GpioPin(0, "HIGH", "GPIO-5");
GpioPin two = new GpioPin(1, "LOW", "GPIO-1");
list.add(one);
list.add(two);
GenericEntity<List<GpioPin>> result = new GenericEntity<List<GpioPin>>(list) {
};
return Response.status(Status.OK).entity(result).build();
}