写了一个程序:根据状态位读取SQLserver 中的一张表,下载其中一个字段的值,这个值是XML类型的,然后把这个XML文件的内容插入到另一Oracle数据库,并更新SQLServer表的标志位,表示这条记录已经更新过。

我的思路是用java写个webservice,然后再用C#写个windows 服务每过30分钟运行一次。用java写业务是因为我觉得java操作oracle相对方便一点。用C#写windows服务是是因为我只知道能用C#写windows service,后台静默运行挺好。

看似简单的程序,最后真正实现需求居然也花了3天时间,因为遇到了几个小问题,并且还有未解决的。

接下来罗列一下遇到的问题。

Q1 java解析XML内容

已解决:参考http://www.ibm.com/developerworks/cn/xml/dm-1208gub/index.html

用的是第一种DOM方法

Q2 java jdbc连接Oracle数据库问题

已解决:关键代码如下

String driverClassName = "oracle.jdbc.driver.OracleDriver";

String url = "jdbc:oracle:thin:@//192.168.101.22:1521/orcl";

注意,java代码里的sql语句最后不要写分号,否则会报错 java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 。

Q3 java 怎么写一个webservice

已解决:

参考:http://javapapers.com/web-service/java-web-service-using-eclipse/

写好java 类以后(Dynamic Web Project工程下),直接右击新建webservice。

需要注意的是,要生成的方法必须是小写字母开头的,否则就无法调用了。java里方法要小写开头!

我用java 写好了一个Service类。接下来就是

Q4 下载好了XML文件,然后在解析这个XML文件时,发生了异常:

xml中1字节的UTF-8序列的字节1无效([字符编码]Invalid byte 1 of 1-byte UTF-8 sequence

引起这个问题的原因是,java下载XML文件默认编码格式是GBK,而我们用DOM去解析xml文件的时候,用的是UTF-8的方式去解析,编码对不上,所以不能识别xml文档。

http://bbs.itheima.com/thread-29901-1-1.html

http://blog.csdn.net/zhangzhikaixinya/article/details/7727938 这种方法我没试过

代码实现

     /**
* 写日志
* @param logpath 日志文件路径
* @param logtext 日志内容
*/
public void WriteLog(String logpath,String logtext)
{
File file = new File(logpath); try
{
//Writer out = new FileWriter(file,true);
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file, true),"utf-8");
out.write(logtext);
out.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}

写文件指定UTF-8编码

Q5 写好了程序,发布本地,测试通过,发布到远程服务器上,调用提示404 找不到资源。我用C#调用的java webservice。

未解决……

暂时就本地运行。

最新文章

  1. Git版本控制Windows版快速上手
  2. 面试题目——《CC150》树与图
  3. wordpress导入模板数据
  4. PD脚本导出到数据库后没有注释问题
  5. [ASP.NET] 使用 ASP.NET SignalR 添加实时 Web
  6. c# 事件为何要继承EventArgs
  7. HBase数据同步ElasticSearch该程序
  8. Qt对xml文件的读写
  9. 递归求和1到n
  10. [Bayesian] “我是bayesian我怕谁”系列 - Continuous Latent Variables
  11. MyEclipse和Eclipse非常方便的快捷键
  12. P3806 【模板】点分治1
  13. 【分布式缓存系列】集群环境下Redis分布式锁的正确姿势
  14. Windows cmd 一些命令
  15. vue与自定义元素的关系
  16. freemarker 中可以直接使用的内置对象
  17. python基于matplotlib绘图
  18. ApiCloud开发经验总结
  19. 2017 Multi-University Training Contest - 2
  20. mybatis WARN No appenders could be found for logger的解决方法

热门文章

  1. [转] 经典SQL练习题
  2. UILabel内容模糊
  3. dev GridControl实现拖拽
  4. eclipse构建maven+scala+spark工程 转载
  5. html标签快速转换思想方法
  6. js判断输入时间是否大于系统时间
  7. 不用git将项目push到码云上
  8. build.gradle文件详解<转> 推荐
  9. Git 笔记整理3
  10. Ubuntu 12.04 Virtualbox 启用USB 设备支持