SQLServer解析xml到Oracle

寫了一個程序:根據狀態位讀取SQLserver 中的一張表,下載其中一個字段的值,這個值是XML類型的,而後把這個XML文件的內容插入到另外一Oracle數據庫,並更新SQLServer表的標誌位,表示這條記錄已經更新過。html

個人思路是用java寫個webservice,而後再用C#寫個windows 服務每過30分鐘運行一次。用java寫業務是由於我以爲java操做oracle相對方便一點。用C#寫windows服務是是由於我只知道能用C#寫windows service,後臺靜默運行挺好。java

看似簡單的程序,最後真正實現需求竟然也花了3天時間,由於遇到了幾個小問題,而且還有未解決的。web

接下來羅列一下遇到的問題。sql

Q1 java解析XML內容數據庫

已解決:參考http://www.ibm.com/developerworks/cn/xml/dm-1208gub/index.html windows

用的是第一種DOM方法服務器

 

Q2 java jdbc鏈接Oracle數據庫問題java-web

已解決:關鍵代碼以下oracle

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

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 這種方法我沒試過

代碼實現

 1     /**
 2      * 寫日誌
 3      * @param logpath  日誌文件路徑
 4      * @param logtext  日誌內容
 5      */
 6     public void  WriteLog(String logpath,String logtext)
 7     {
 8         File file = new File(logpath);
 9         
10         try
11         {
12             //Writer out = new FileWriter(file,true);
13             OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file, true),"utf-8");
14             out.write(logtext);
15             out.close();
16         } catch (IOException e)
17         {
18             // TODO Auto-generated catch block
19             e.printStackTrace();
20         }
21     }
寫文件指定UTF-8編碼

 

Q5 寫好了程序,發佈本地,測試經過,發佈到遠程服務器上,調用提示404 找不到資源。我用C#調用的java webservice。

未解決……

暫時就本地運行。

相關文章
相關標籤/搜索