网站地图
  
  高级搜索
  首页   技术论坛   博客 派计划   产品中心   资源中心   银弹在线   商城  





SDO测试小例子的问题    
#1楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 219 分
财富 441 goCom币
威望 123
排名 第 74 名
段位 新手必读
       下面我是应用SDO生成一个XML文档,下面贴出代码与报出的异常。我跟了一下源码,看里边的代码不是接口就是抽象类,本人认为是不是要实现这些接口和抽象类呢?还是我写的不对,还是引用的包不全。希望有人指点,谢谢。   下面是用sdo生成一个xml档,代码如下:
  1. DataObject puchaseOder = DataFactory.INSTANCE
  2.                         .create("http://www.example.com/IPO","puchaseOderType");
  3.             puchaseOder.set("orderDate", "2003-05-05");
  4.  
  5.             DataObject shipTo = puchaseOder.createDataObject("shipTo");
  6. shipTo.set("conutry", "China");
  7. shipTo.set("name", "aaaaa");
  8. shipTo.set("street", "124 bbb");
  9. shipTo.set("state", "CA");
  10. shipTo.set("zip", "1256");
  11.  
  12.             DataObject billTo = puchaseOder.createDataObject("billTo");
  13. shipTo.set("conutry", "US");
  14. shipTo.set("name", "bbb");
  15. shipTo.set("street", "572 bbb");
  16. shipTo.set("state", "PA");
  17. shipTo.set("zip", "93845");
  18.  
  19. puchaseOder.set("comment", "Hurry ,my lawn is going wild");
  20. DataObject items = puchaseOder.createDataObject("items");
  21.  
  22. DataObject item1 = items.createDataObject("item");
  23. item1.set("PartNum", "926-AA");
  24. item1.set("ProduceName", "kkkkkk");
  25. item1.set("quantity", "23");
  26. item1.set("USPrice", "123.3");
  27. item1.set("ShipDate", "2003-02-03");
  28.  
  29. DataObject item2 = items.createDataObject("item");
  30. item2.set("PartNum", "926-BB");
  31. item2.set("ProduceName", "rrrrr");
  32. item2.set("quantity", "23");
  33. item2.set("USPrice", "123.3");
  34. item2.set("ShipDate", "2003-02-03");
  35.  
  36. try {
  37.                   OutputStream stream = new FileOutputStream("classpath:po.xml");
  38.                   XMLHelper.INSTANCE.save(puchaseOder, "http://www.example.com/IPO", "puchaseOderType");
  39.             } catch (FileNotFoundException e) {
  40.                   // TODO Auto-generated catch block
  41.                   e.printStackTrace();
  42.             }
  43.  
  44.       }

在第一行就报错了,报异常如下:
  1. Exception in thread "main" java.lang.ExceptionInInitializerError
  2.       at org.cchd.sdo.SdoDataObject.main(SdoDataObject.java:13)
  3. Caused by: java.lang.NullPointerException
  4.       at commonj.sdo.impl.HelperProvider.getDataFactory(HelperProvider.java:302)
  5.       at commonj.sdo.helper.DataFactory.<clinit>(DataFactory.java:62)
  6.       ... 1 more

 

 

Re: SDO测试小例子的问题    
#2楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 219 分
财富 441 goCom币
威望 123
排名 第 74 名
段位 新手必读
原因是没有注册类型,在创建DataObject时前提是要用你所要创建它的类型,在你项目中要有一个XSD文件。然后把其注册就可以了。代码如下:
private void loadTypesFromXMLSchemaFile(HelperContext scope, String filename) {
XSDHelper xsdHelper = scope.getXSDHelper();

URL url = getClass().getResource("/" + filename);
InputStream is = null;
try {
is = url.openStream();
xsdHelper.define(is, url.toString());
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
 

Re: SDO测试小例子的问题    
#3楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 2366 分
财富 2794 goCom币
威望 2182
排名 第 12 名
段位 新手必读
收~~学习一下
1月21日 22:01:06


烟沾手但不染,酒酌量绝不乱,舞过目即可忘,歌绕梁则为绝,色倾城尚自治,智独行且多思……

SOA中国关键任务广受认可    SOA博客精英 万元奖金现已发送    IDC白皮书《软件商成长路线图》    软件开发2.0技术大会
Primeton BPS 频道火热上线    goCom积分调整    派计划:专业、权威、影响力    goCom户外:烧烤+游戏
 




发表回复
账号用户名   密码   登录
内容:url email imgsrc image code quote
范例 Example
bold italic underline linethrough   


 [更多...]