可以在Java中把你的SimpleBean写入字节流发送到指定的C++Servcer UDP port,C++直接读包再解析成相应的Object.如果通过XML并传送文件的话也很麻烦,Java->SimpleBean->XML->Tranfer File->C++->parse XML->consturct SimpleBean object.
如果必须要用XML,可以考虑SOAP协议.

解决方案 »

  1.   

    使用xmlHttp,它在发送XML的同时指明了对方程序处理该XML的被请求的模块(如url)
      

  2.   

    如果C++那边是要XML文件,这样做不错的有一个XMLBEANS的框架...功能和HIBERNATE差不多,只是HI是对数据库,XMLBEANS是对XML文件数据...也就是根据XML自动解析生成BEAN,根据BEAN自动生成XML
      

  3.   

    我们java这边用Castor进行java对象和xml的互相转换,你可以试试
    是通过socket和别的程序传送数据的
      

  4.   

    我国庆节前刚用java做了一个你可以参考一下
    利用java发射将对象生成xml的方法JXmlSerializable 是一个利用java反射,通过调用对象中所有以get(不区分大小写)开头的方法除去getClass方法,生成xml格式,希望与大家分享一下
    下面是一个parent 对象 ,包含两个child 对象 生成的xml如下<Parent>
     <Name> jack </Name> 
     <Age> 0 </Age> 
     <Sex> male </Sex> 
    <Child>
     <Name> tom </Name> 
     <Age> 0 </Age> 
     <Sex> male </Sex> 
    </Child>
    <Child>
     <Name> Marie </Name> 
     <Age> 0 </Age> 
     <Sex> female </Sex> 
    </Child>
    </Parent>
    import java.lang.reflect.Method;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Array;
    import java.io.PrintWriter;
    import java.io.IOException;
    /**
     * 简单的将对象转换为xml文本的类
     *
     * @version     $Revision: 1.0 $ $Date: 2006/09/26 13:50:44 $
     * @author      李科 [email protected]
     */
    public class JXmlSerializable {

    public void toXmlSerial(PrintWriter out,int num) throws InvocationTargetException,IllegalAccessException,IOException
    {
    String head="";
    for(int i=0;i<num;i++)
    {
    head+="\t";
    }
    out.write(head+"<" +this.getClass().getName()+">\n");

    Method[] methods=this.getClass().getMethods();
    for(int i=0;i<methods.length;i++)
    {
    Class[] paras=methods[i].getParameterTypes();
    String name=methods[i].getName();
    if(paras==null||paras.length==0)
    {
    if((name.substring(0,3).toLowerCase().equals("get"))&&!name.equals("getClass"))
    {
    Object obj=methods[i].invoke(this,null);
    getMethodXmlSerial(out,obj,methods[i],num);
    }
    }

    }

    out.write(head+"</" +this.getClass().getName()+">\n"); }
    private void getMethodXmlSerial(PrintWriter out,Object obj,Method method,int num)  throws InvocationTargetException,IllegalAccessException,IOException
    {
    if(obj==null)
    return ;
    String head="";
    for(int i=0;i<=num;i++)
    {
    head+="\t";
    }
    if(obj.getClass().isArray())
    {
    for(int i=0;i<Array.getLength(obj);i++)
    {
    Object childobj=Array.get(obj,i);
    if(childobj instanceof JXmlSerializable )
    {
    ((JXmlSerializable)childobj).toXmlSerial(out,num+1);
    }
    else
    {
    getMethodXmlSerial(out,childobj,method,num);
    }
    }
    }
    else
    {
    out.write(head+" <"+method.getName().substring(3)+"> ");
    out.write(obj.toString());
    out.write(" </"+method.getName().substring(3)+"> \n");
    }

    }
    }/*child 类 */
    public class Child extends JXmlSerializable { private String _name;
    private String _sex;
    private int age;
    public void setAge(int num)
    {
    age=num;
    }
    public int getAge()
    {
    return age;
    }
    public void setName(String name)
    {
    _name=name;
    }
    public void setSex(String sex)
    {
    _sex=sex;
    }
    public String getName()
    {
    return _name;
    }
    public String getSex()
    {
    return _sex;
    }}
    /*parent 类 包含了两个child */
    import java.io.PrintWriter;
    import java.lang.reflect.Array;
    import java.util.Hashtable;
    import java.util.LinkedList;
    import java.util.Vector;
    public class Parent extends JXmlSerializable { private String _name;
    private String _sex;
    private LinkedList list=new LinkedList();
    private Vector vec=new Vector();
    int age;
    public void setAge(int num)
    {
    age=num;
    }
    public int getAge()
    {
    return age;
    }
    public void setName(String name)
    {
    _name=name;
    }
    public void setSex(String sex)
    {
    _sex=sex;
    }
    public String getName()
    {
    return _name;
    }
    public String getSex()
    {
    return _sex;
    }
    public void addChild(Child child)
    {
    list.add(child);
    vec.add(child);
    }
    public Child[] getChild()
    {

    Child[] aa=new Child[vec.size()];
    //list.toArray(aa);
    vec.toArray(aa);
    return aa;
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try{
    Parent pat=new Parent();
    pat.setName("jack");
    pat.setSex("male");
    Child child1=new Child();
    child1.setName("tom");
    child1.setSex("male");
    pat.addChild(child1);
    Child child2=new Child();
    child2.setName("Marie");
    child2.setSex("female");
    pat.addChild(child2);
    pat.getChild();
    PrintWriter out=new PrintWriter(System.out);
    pat.toXmlSerial(out,0);
    out.flush();


    }
    catch (Exception e)
    {
    e.printStackTrace();
    }

    }
    }