我正在开发客户端/服务器应用程序(客户端是一个将数据发送到服务器的Android应用程序)。我正在使用Java开发服务器。我已经使用SQL Navigator 5.5“使用NetBeans”连接了服务器应用程序。我想用Json作为中间件,但我不知道怎么做!什么是最合适的XML或Json?我需要使用HTTP吗?如果是这样,如何(因为我希望能够保护应用程序)?
服务器应该响应的另一件事是Android应用程序通过发送“经度和纬度”,Android应该“地理编码”并以地图“位置”的形式显示。此外,我需要更多地了解应该在应用程序上运行的Web服务的概念。
这是服务器代码: (服务器应从客户端获取的值是“long and lat”) / * *要更改此模板,请选择“工具”|模板 *并在编辑器中打开模板。 * /
package pkg;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@WebService(serviceName = "lbsws")
public class lbsws {
/** This is a sample web service operation */
@WebMethod(operationName = "hello")
public String hello(@WebParam(name = "name") String longg) {
String result=null;
try
{
Connection con = dbConnection.getdbConnection("system","lbs","orcll", "localhost");
Statement st = con.createStatement();
String lat ="10";
String query="select longg,lat,abs(("+longg+"-longg))/abs(("+lat+"-lat)) as function1 from lbs where abs(("+longg+"-longg))/abs(("+lat+"-lat)) = ("+
"select min(abs(("+longg+"-longg))/abs(("+lat+"-lat))) from lbs)";
ResultSet rs = st.executeQuery(query);
while(rs.next())
{
result = rs.getFloat("longg")+","+ rs.getFloat("lat")+"-"+ rs.getFloat("function1");
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
return result;
}
}
答案 0 :(得分:2)
一些事情:
1)JSON为传输层竖起大拇指。不要再想一想。
2)使用JSON Web服务。在基于Java的系统中使用HttpClient。只是为了得到回复 你可以根据需要将JSON转换为对象。但是通过HttpClient调用Web服务
3)创建JSON服务。那么你可以使用泽西岛。有几个选择。我建议在Tomcat服务器上进行开发。它比Java EE服务器更快,而不是上升/下降。泽西岛旁边还有其他一些不错的选择。
但主要是先写最简单的东西,然后让它从端到端工作。多数民众赞成你想做什么。
只需生成一个返回Sytem时间的服务,然后通过JSON将其发送回客户端并显示它。然后重新评估泽西对阵什么。但要让一些东西端到端运行。
所以第一步是写一个JSON Web服务,然后在浏览器中测试它。现在不要担心客户端。只需运行服务并使用浏览器调用它。顺便说一句,有理由使用RESTful JSON Web服务。它是构建Web服务的好方法。
不要同时攻击两个问题。忘记连接到数据库,直到您获得服务并运行只有被删除的数据。