JavaでWebサービスを作成し、Webサービスが正常に機能していますが、カスタムオブジェクトのリストを渡す方法がわかりません。ここに私のクラスオブジェクトは、次のとおりです。Webサービス経由でカスタムオブジェクトを渡す方法
public class Contacts{
private int id;
private String username;
private String location;
private Date updated_at;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setLocation(String location) {
this.location = location;
}
public String getLocation() {
return location;
}
public void setUpdated_at(Date updated_at) {
this.updated_at = updated_at;
}
public Date getUpdated_at() {
return updated_at;
}
}
ここに私のWebサービスメソッドは、データベースを照会し、オブジェクトのリストを返すことです。私は、Axis2のエラーを取得するには、オブジェクトを返すしようとするたび:[ERROR] org.apache.axis2.AxisFault: Mapping qname not fond for the package: wtp
とにかくは、ここに私の方法である:
public String getUsers()
{
ResultSet mainRS = null;
String username = "root";
String password = "ticket";
String tablename = "users";
String fieldname = "*";
String query = "SELECT " + fieldname + " FROM " + "android." + tablename + ";";
ArrayList<Contacts> lstc = new ArrayList<Contacts>();
/* this chnk of code can appear more or less verbatim */
/* in your database apps (including JSPs) */
String url = "jdbc:mysql://"my IP address":3306/android";
String test = " ";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(url, username, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
mainRS = rs;
while (rs.next()){
Contacts cont = new Contacts();
if (!(rs.getString("username") == null)){
cont.setUsername(rs.getString("username"));
test = rs.getString("username");
}
if (!(rs.getString("location") == null)){
cont.setLocation(rs.getString("location"));
}
if (!(rs.getString("updated_at") == null)){
cont.setUpdated_at(rs.getDate("updated_at"));
}
if (!(rs.getString("idUsers") == null)){
cont.setId(rs.getInt("idUsers"));
}
lstc.add(cont);
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
test = e.toString();
}
return test;
}
私はJavaでEclipseのガリレオ、Axis2のを使用しています。これらのオブジェクトをどのように渡すかについてのアイデアは非常に高く評価されます。それとも、カスタムオブジェクトをベースにするより良い方法であろうと、私はどんなアイディアにもオープンしています。
ありがとうございます!
EDIT:それはnullのオブジェクトを返し、
Contacts lst[] = new Contacts["count rows here"];
しかし:私が使用する方法を編集しました。
SoapObject:たとえば、次の結果があるので
は、データベース内の4行があり[結果:ヌル、結果:ヌル、結果:ヌル、結果:NULL]
任意のアイデア?
私は上記の記事を、結果にもっと近づけるようなコードで編集しました..しかし、何があっても、私はヌル値を受け取ります。 – ninnemannk