ns 中使用的这个方法类似于 getSurveyQuestion 方法,其中您可以遍历 SurveyQuestion 对象的集合,直到找到您所希望的问题,并返回信息。清单 15 显示了从选项列表到字符串数组的转换。
清单 15. 从选项列表到字符串数组的转换
public java.lang.String[] getSurveyQuestionOptions(int questionno)
throws java.rmi.RemoteException {
this.initialize ();
Integer counter = 0;
for(Iterator<SurveyQuestion> i = this.survey.iterator();
i.hasNext(); ) {
SQWS.SurveyQuestion question = (SQWS.SurveyQuestion) i.next();
if (counter == questionno) {
return (String[])
question.question_options.toArray(new String [0]);
}
}
return (String[]) new String[0];
}
在循环中返回合适的信息,而不是结束循环。这意味着,如果您直到循环结束还没有找到 所需的内容,您必须返回一个空字符串。
setSurveyResponse 方法
进行填充所需要的最后 一个函数是将信息写入到数据库的函数。在本系列文章的第 3 部分中,曾经看到过这个特定方法的内容 。这个函数与将问卷调查回答写入到数据库的代码是相同的。这个过程非常简单:打开到数据库的连接, 然后提供参数作为要插入到 survey_response_detail 表中的值。
在这个方面,两个函数是相同 的,只是它们的名称不同。清单 16 显示了所需的代码。
清单 16. setSurveyResponse 方法
public java.lang.String setSurveyResponse(int surveyid,
int surveyquestion,
java.lang.String surveyvalue)
throws java.rmi.RemoteException {
PreparedStatement ps;
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn =
DriverManager.getConnection("jdbc:db2://localhost:50000/SURVEY",
"survey","surveypw");
} catch (Exception ex) {
System.out.println("SQLException: " + ex.getMessage());
}
try {
ps = conn.prepareStatement (
"INSERT INTO survey_response_detail (responseid, question,
responsestring) VALUES(?,?,?) ");
ps.setString (1,new Integer(surveyid).toString());
ps.setString (2,new Integer(surveyquestion).toString());
ps.setString (3,surveyvalue);
int count = ps.executeUpdate ();
ps.close ();
} catch (Exception ex) {
System.out.println("SQLException (adding question result): " + ex.getMessage());
}
return "Completed";
}
要完成支持后端 Web服务的方法,您只需要对代码进行 编译,复制这些类,并且部署该服务以使得 Web服务生效。
编译和部署服务
要编译您所创 建的代码,需要使用javac,并且需要指定包含 Web服务所需的类的Axis 库。让我们假设您已经正确地设 置了CLASSPATH。它应该与清单 17 中所示类似。
清单 17. 设置 CLASSPATH
CLASSPATH=axis.jar:log4j-1.2.8.jar:commons-logging-1.0.4.jar:commons- discovery-0.2.jar
:jaxrpc.jar:wsdl4j-1.5.1.jar:saaj.jar:.
将原始的 Survey*.java 源文件复制到构建目录。现在,您可以编译所有的类,包括原始 Survey类:$ javac *.java。
要进行部署,请将所创建 |