簡體   English   中英

靜態Web服務,Tomcat錯誤500

[英]Restful Webservice, Tomcat Error 500

我有以下問題。 我用Java和tomcat編寫一個Restful應用程序。 Sofar運作良好。 例如 :

@GET
    @Path("/String/")
    @Produces(MediaType.APPLICATION_JSON)
    public String getText()
    {
        String data = dothat();
        return data;
    }

(dothat();連接到Java服務器,獲取一個字符串並返回它)。 當我在瀏覽器中調用此方法時,我可以看到返回的字符串。

但是,當我稍微復雜一點並在列表中使用自己的類時:

@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;
    }
}

最奇怪的部分是:在下面的brwoser img或Tomcat創建的任何日志中,我都沒有收到錯誤消息...。 沒有堆棧跟蹤的錯誤500

在閱讀了有關登錄Tomcat的幾個線程之后,我設法將日志交換為log4j。 但是,調試級別的log4j也不能告訴我有關錯誤的任何信息。

我無法解決此問題。 有人有主意嗎?

您絕對需要糾正日志記錄,因為這將為您提供有關問題所在的線索。

在這里,我將在黑暗中進行拍攝,並說您需要從test3()方法中刪除“ static”關鍵字。 所以它看起來像這樣:

@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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM