현재 Android 네이티브 및 MySQL을 사용하고 있습니다. 둘 다 연결하기 위해 자바와 REST를 사용했다. 그러나, 내 REST 서비스를 실행하려고했을 때 아무 응답도받지 못했습니다 (단지 빈 페이지가 나타남). 로그 확인을 시도했는데 오류가 발생했습니다. 여기 내 코드입니다 : - 데이터베이스 연결 파일Android Java 및 REST를 사용하여 MySQL에 연결
package datasource;
import java.sql.Connection;
import java.sql.DriverManager;
public class Database
{
@SuppressWarnings("finally")
public static Connection createConnection() throws Exception {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/friseur", "root", "");
} catch (Exception e) {
throw e;
} finally {
return con;
}
}
}
QueryPhoto.java -
Database.java 데이터베이스에서
package query;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import datasource.Database;
import model.Photo;
public class QueryPhoto {
public static ArrayList<Photo> GetPhoto() throws Exception
{
ArrayList<Photo> photo = new ArrayList<Photo>();
Connection dbConn = null;
try {
try {
dbConn = Database.createConnection();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Statement stmt = dbConn.createStatement();
String selectPhoto = "SELECT * FROM photo, user where photo.user_id = user.id";
ResultSet rs = stmt.executeQuery(selectPhoto);
while(rs.next())
{
Photo photoObject = new Photo();
photoObject.setPDateUpload(rs.getString("added_time"));
photoObject.setPUrlOriginal(rs.getString("url_original"));
photoObject.setPUrlWithHair(rs.getString("url_with_hair"));
photoObject.setCaption(rs.getString("caption"));
photoObject.setUserId(Integer.parseInt(rs.getString("user_id")));
photoObject.setUserName(rs.getString("username"));
photo.add(photoObject);
}
}
catch (SQLException sqle) {
throw sqle;
}
catch (Exception e) {
// TODO Auto-generated catch block
if (dbConn != null) {
dbConn.close();
}
throw e;
}
finally {
if (dbConn != null) {
dbConn.close();
}
}
return photo;
}
}
PhotoJson.java를 조회하려면 - JSON 객체
를 구성하는package queryresult;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import java.util.*;
import model.Photo;
public class PhotoJson {
public static String constructJSON(ArrayList<Photo> photo) {
JSONObject obj = new JSONObject();
try {
for (int i = 0; i < photo.size(); i++) {
Photo photoObj = photo.get(i);
obj.put("date_upload", photoObj.getPDateUpload());
obj.put("url_original", photoObj.getPUrlOriginal());
obj.put("url_with_hair", photoObj.getPUrlWithHair());
obj.put("caption", photoObj.getCaption());
obj.put("user_id", photoObj.getUserId());
obj.put("username", photoObj.getUserName());
}
} catch (Exception e) {
}
return obj.toString();
}
}
GetPhoto.java - REST의 경우
package webservice;
import java.util.ArrayList;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import model.Photo;
import query.QueryPhoto;
import queryresult.PhotoJson;
@Path("/WebService")
public class GetPhoto {
@POST
@Path("/GetPhotos")
@Produces("application/json")
public String photo()
{
String response = null;
try
{
ArrayList<Photo> photo = QueryPhoto.GetPhoto();
response = PhotoJson.constructJSON(photo);
}
catch (Exception e)
{
System.out.println("Exception Error"); //Console
}
return response;
}
}
의 web.xml은
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>useraccount</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>webservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
실제로 문제가 있습니까? 도와 줘서 고마워.
당신이 호출하는 어떤 URL :
는
@GET
로 주석은 다음 문제를 해결할 변환 가능한? 'POST' 또는'GET'으로 호출하고 있습니까? –