2015-12-29 2 views
1

Я новичок в веб-сервисах REST и пытаюсь его изучить. У меня есть код, который получает сообщения, хранящиеся в таблице оракула, через вызов отдыха.HTTP-статус 500 во время запроса REST

import java.util.List; 
import javax.ws.rs.*; 
import javax.ws.rs.core.MediaType; 
@Path ("/messages") 
public class messages { 
@GET 
@Produces(MediaType.APPLICATION_XML) 
public List<Message> getMessages(){ 
    MessageService msg = new MessageService(); 
    System.out.println(msg.getMessages("vulture9")); 
    return msg.getMessages("vulture9"); 
} 

и другая часть его

import java.sql.*; 
import java.util.*; 
import javax.xml.bind.annotation.XmlRootElement; 
@XmlRootElement 
public class MessageService { 

public MessageService(){ 
} 
public List getMessages(String username){  
    Connection conn; 
    List <Map> msgList = new LinkedList<>();   
    try { 
     Class.forName ("oracle.jdbc.OracleDriver"); 
    } catch (ClassNotFoundException e1) { 
     e1.printStackTrace(); 
    } 
    try { 
     conn = DriverManager.getConnection("jdbc:oracle:thin:@talon.squadrhino.com:1521:orcl", "oracle", "oracle"); 
     System.out.println("connection successful");    
     Statement stmt = conn.createStatement(); 
     String sql = "select * from message where author = '" + username +"'"; 
     ResultSet res = stmt.executeQuery(sql); 
     while (res.next()){ 
      Map <String,String> msg = new LinkedHashMap<>(); 
      msg.put("username", res.getString("author")); 
      msg.put("message", res.getString("message")); 
      msgList.add(msg); 
     } 
     conn.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return msgList;  
} 
} 

Я выборки сообщения, хранящиеся в таблице базы данных и пытается получить их в формате XML. я не мог видеть какие-либо ошибки в TOMCAT журнале, но браузер просто возвращает

ниже ошибки

HTTP Status 500 - Internal Server Error 
type Status report 
message Internal Server Error 
description The server encountered an internal error that prevented it from fulfilling this request. 

Я не знаю, где искать или начать отладку ..

+0

Что не работает конкретно? Фиксировать это будет очень сложно без stacktrace. – mattbdean

+0

Ошибка 500, являющаяся серверной ошибкой, вы должны посмотреть журналы сервера и журналы вашего веб-сервера. – Berger

+0

как я упомянул tomcat вообще не обнаружил ошибки. – Nomad

ответ

0

попытаться добавить JAXB аннотацию на вашем Класс сообщения.

@XmlElement 
public List getMessages(String username){ 
} 

или просто попробовать

import java.util.List; 
import javax.ws.rs.*; 
import javax.ws.rs.core.MediaType; 
@Path ("/messages") 
public class messages { 
@GET 
@Produces(MediaType.APPLICATION_XML) 
public String getMessages(){ 
    String res =" test response "; 
    return res ; 
} 

есть одна хорошая статья для клиента преобразования XML и Java: http://entityclass.in/rest/jerseyXML.htm

Смежные вопросы