Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android使用Java和REST连接到MySQL_Java_Android_Mysql_Rest - Fatal编程技术网

Android使用Java和REST连接到MySQL

Android使用Java和REST连接到MySQL,java,android,mysql,rest,Java,Android,Mysql,Rest,目前我正在使用Android native和MySQL。为了连接两者,我使用了Java和REST。然而,当我尝试运行REST服务时,我并没有得到任何响应,只是出现了一个空白页面。我已尝试检查日志,现在确实发现了任何错误。这是我的密码: java-数据库连接文件 package datasource; import java.sql.Connection; import java.sql.DriverManager; public class Database { @Suppress

目前我正在使用Android native和MySQL。为了连接两者,我使用了Java和REST。然而,当我尝试运行REST服务时,我并没有得到任何响应,只是出现了一个空白页面。我已尝试检查日志,现在确实发现了任何错误。这是我的密码:

java-数据库连接文件

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;
        }
    }
}
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-其余部分

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,那么问题很可能是您发送的HTTP GET请求显示了一个空白页面,而您的方法被注释为响应POST请求

将注释更改为@GET将解决您的问题:

@GET
@Path("/GetPhotos")
@Produces("application/json")
public String photo() { /* ... */ }

你打什么网址?你是用POST还是GET来称呼它?