Bean객체 생성이 중요한거 같다.
그 빈의 이름으로 xml이 생성된다는 사실을 알자
일단 이거 하나가지고 다 돌아가는 것은 아닙니다. 순순히 참고 자료라는 사실을 ^^
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Vector;
import org.apache.xmlrpc.XmlRpcClient;
public class test{
public static void main(String args[]) throws SQLException{
Vector sendParams = new Vector();
ResultBean result = new ResultBean();
String xml = "";
String msg = "";
int cnt = 0;
int count = 0;
Connection conn = null;
try{
XmlRpcClient server = new XmlRpcClient(XML_WebKey.ser); //XmlRpcClient클레스에
conn = XmlRpcUtil.getConnection();
// 서버메서드로 넘길 파라미터처리(ArrayList)
TestDAO dao = new TestDAO();
beanList testbean = new beanList(); //보낼데이터를 담을 bean.
ArrayList beans = dao.getTest(conn); //데이터를 testbean에 담는다.
if(beans.size() > 0){ //데이터가 있는 경우를 체크.
testbean.setbeanList(beans); //bean을 ArrayList에 담는다.
xml = XmlRpcUtil.writeBean(testbean); //writeBean에 Bean을 넣어 xml을 생성한다.
sendParams.addElement(xml.getBytes());
// 데이터 전송 & 결과값 리턴
String ret = (String)server.execute(XML_WebKey.order, sendParams); //XML_WebKey클래스에 있는 order메서드를 호출한다. order에는 주소정보가 있다
result = (ResultBean)XmlRpcUtil.readBean(ret, "result", ResultBean.class);
msg += result.toString();
// 리턴값처리 Message 성공시 (getCode() 000:성공 001:실패)
if(result.getCode().equals("000")){
conn.setAutoCommit(false);
for(int j = 0 ; j < beans.size() ; j++){
beanList delvorder = (beanList)beans.get(j);
if(beanList.getNo().equals("")){
//처리된 결과값이 성공일 시 성공이라는 flag를 확인하기 위해서 update한다.
cnt = dao.updateTest(conn, delvorder.getNo(), delvorder.getCo(), delvorder.getPrd());
}
if(cnt == 1)count++;
}
if(count == beans.size()){
conn.commit();
msg = "성공";
}else{
conn.rollback();
msg = "실패";
}
}
}else if(beans.size() == 0){
msg = " [TransmitDelvOrderFor] 전송할데이터가 없으므로, 원격메서드를 호출하지 않았습니다.";
}else{
msg = " [TransmitDelvOrderFor] 처리할 데이터가 0보다 적습니다.";
}
}catch(Exception e){
conn.rollback();
conn.setAutoCommit(true);
e.printStackTrace();
msg = "\r\n Exception("+XML_WebKey.transmit+"): " + e.toString();
}finally{
conn.setAutoCommit(true);
if(conn != null) conn.close();
XmlRpcUtil.logsXml(xml, "Test");
XmlRpcUtil.logs(msg, "Test");
}
}
private static final long serialVersionUID = 42L;
}