//package xml;
//创建一个xml已经可以了,问题就是怎么样发送这个xml。我编译通过了,但没有测试,估计有问题//主要问题一个是创建了xml后,返回一个document,怎么把它付给outputStream,然后发出去。
//还有resin是不是和tomcat一样,我知道在tomcat下配置Servlet,resin是不是一样?
//谢谢!!!
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;import java.io.*;
import java.net.*;public class zsi_mt {
      private String cp_code = "";
      private String dest_num = "";
      private String src_num = "";
      private String service_code = "";
      private String content = "";
      HttpURLConnection conn = null;
      BufferedReader br = null;
      DataOutputStream dos = null;
      DataInputStream inStream = null;
      String urlString="";
      InputStream is = null;
      OutputStream os = null;
      boolean ret = false;
      String StrMessage = "";
      int bytesRead, bytesAvailable, bufferSize;
      byte[] buffer;
      int maxBufferSize = 1 * 1024 * 1024;
      String responseFromServer = "";      public Document CreateXML() {            Element root = new Element("mt");
            Document doc = new Document(root);
            Element e1 = new Element("billing");
            Element mtbill = root.addContent(e1);
            Element el_cp_code = e1.addContent(new Element("cp_code").setText(
                cp_code));
            Element el_dest_num = e1.addContent(new Element("dest_num").setText(
                dest_num));
            Element el_src_num = e1.addContent(new Element("src_num").setText(
                src_num));
            Element el_service_code = e1.addContent(new Element("service_code").
                setText(service_code));
            Element el1 = new Element("plan");
            el1.setAttribute("id", "plan_id");
            Element plan = root.addContent(el1);
            return doc;      }      public void SendXML(Document doc) {
            try {
                  URL url = new URL(urlString);
                  conn = (HttpURLConnection) url.openConnection();
                  conn.setDoInput(true);
                  conn.setDoOutput(true);
                  conn.setUseCaches(false);
                  conn.setRequestMethod("POST");
                  conn.setRequestProperty("Connection", "Keep-Alive");                  org.jdom.output.XMLOutputter xmlout = new org.jdom.output.
                      XMLOutputter(" ", true, "gb2312");
                  OutputStream os = conn.getOutputStream();
                  xmlout.output(doc, os);                  dos = new DataOutputStream(os);
                  /*
                   bytesAvailable = fileInputStream.available();
                   bufferSize = Math.min(bytesAvailable, maxBufferSize);
                   buffer = new byte[bufferSize];
                   // read file and write it into form...
                   bytesRead = fileInputStream.read(buffer, 0, bufferSize);
                   while (bytesRead > 0) {
                         dos.write(buffer, 0, bufferSize);
                         bytesAvailable = fileInputStream.available();
                         bufferSize = Math.min(bytesAvailable, maxBufferSize);
                       bytesRead = fileInputStream.read(buffer, 0, bufferSize);
                   }
                   // send multipart form data necesssary after file data...
                   // close streams
                   fileInputStream.close();
                   */
                  dos.flush();
                  dos.close();
                  try {
                      inStream = new DataInputStream(conn.getInputStream());
                      inStream.close();
                  }
                  catch (IOException ioex) {
                        System.out.println("From (ServerResponse): " + ioex);                  }            }
            catch (MalformedURLException ex) {
                  System.out.println("From ServletCom CLIENT REQUEST:" + ex);
            }            catch (IOException ioe) {
                  System.out.println("From ServletCom CLIENT REQUEST:" + ioe);
            }      }      public String GetinStream(InputStream in ) {
            return("11");      }      public void setCp_code(String cp_code) {
            this.cp_code = cp_code;
      }      public void setDest_num(String dest_num) {
            this.dest_num = dest_num;
      }      public void setSrc_num(String src_num) {
            this.src_num = src_num;
      }      public void setService_code(String service_code) {
            this.service_code = service_code;
      }      public void setContent(String content) {
            this.content = content;
      }      public static void main(String[] args) throws Exception {
            zsi_mt mt1 = new zsi_mt();
            mt1.setCp_code("test");
            mt1.setDest_num("81585");
            mt1.setSrc_num("1380000000");
            mt1.setService_code("hd");
            mt1.setContent("123456");
            Document doc = mt1.CreateXML();
            try {
                  XMLOutputter outputter = new XMLOutputter("  ", true);
                  outputter.output(doc, System.out);
            }
            catch (java.io.IOException e) {
                  e.printStackTrace();
            }      }}

解决方案 »

  1.   

    private static final String CONTENT_TYPE = "text/xml; charset=GBK";
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);    request.setCharacterEncoding("GBK");    String InXMLStr="";
        InputStream is = request.getInputStream();
        try {
          Util util = new Util();
          InXMLStr = util.ReadInputStream(is);
        }catch (ErrException ex) {    }
        String OutXMLStr="";
        OutXMLStr=GmccExecute(InXMLStr);
    //    response.setContentLength(OutXMLStr.length());    ServletOutputStream out = response.getOutputStream();
        OutputStreamWriter ow = new OutputStreamWriter(out,"GBK");
        Util util = new Util();
        ow.write(OutXMLStr);
        ow.flush();
        ow.close();  }
      

  2.   

    发送直接将XML post(get)给sevelet
      private String perform(String strAction, String strContent) throws Exception {
        URL url = new URL(strHostIP + strAction);
        System.out.println(strHostIP + strAction);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();    con.setRequestMethod("POST");
        con.setDoOutput(true);
        con.setDoInput(true);    con.setRequestProperty("Content-Type", "text/xml");
        con.setRequestProperty("Accept", "text/xml");
        con.setRequestProperty("Connection", "close");    con.connect();    OutputStream os = con.getOutputStream();//    strContent = URLEncoder.encode(strContent, "GB2312");    byte[] b = strContent.getBytes("GBK");
        DataOutputStream dos = new DataOutputStream(os);
        dos.write(b);
        dos.flush();
        os.close();    InputStream is = con.getInputStream();
        String OutXMLStr = "";
        try {
          Util util =new Util();
          OutXMLStr =util.ReadInputStream(is);
        }
        catch (Exception e) {
        }    is.close();
        con.disconnect();
        System.out.println(OutXMLStr) ;
        return OutXMLStr;  }
      

  3.   

    请问有谁知道在JSP,Tomcat下使用JDBC连接数据库SQL Server 2000 的编程需要怎么配置JDBC或者系统的环境变量吗? 目前我的JSP 和 Tomcat 已经配置成功了.谢谢各位兄弟的帮忙!在下感激不尽!