1. 程式人生 > >Java醫藥平臺專案之第一天總結

Java醫藥平臺專案之第一天總結

寫源於跟著某培訓班的視訊做一個專案,在專案中碰到了各種坑需要自己折騰,所以寫幾篇部落格記錄下來,以後再碰到這樣的問題就不會一臉懵逼了,最起碼曾經我見過

開發環境
作業系統平臺: Windows 7
資料庫平臺: Oracle11G
Java環境: Jdk1.8
Web服務: Tomcat 7
專案構建: Maven3.3
應用軟體: Intellij IDEA14.0(自帶外掛。。)
Plsqldev(oracle客戶端連線工具)

我沒跳過去的坑

開始採坑了,採坑第一步就是安裝Oracle資料庫,因為以前都沒怎麼接觸過Oracle資料庫,一直使用的是Mysql,安裝Oracle資料庫後顛覆了我對資料庫的認知。。。安裝介面不是Windows的那種軟體介面,典型的Java寫出來的頁面,真心好看,還好安裝資料庫的時候一路是比較順利的,總的來說去年還是安裝過一次,也算是有了一點經驗了。

Oracle OraDb11g_home1 TNSListener 服務未啟動
ORA-12541: TNS: no listener 這個錯誤
Listener服務未啟動

看到**listener**這個單詞,看起來是監聽的意思,然後我想起安裝Oracle後系統服務裡面有4,5個Oracle的服務中好像有一個就帶有Listener的字眼,於是我開啟工作列管理器,使用快捷鍵**Ctrl+Alt+Delete** 工作列管理器,注意作業系統的差異性

這裡寫圖片描述

我們可以看到這裡這個Listener服務是沒有被啟動的,我們點選進去檢視這個**Listener**服務的詳情

這裡寫圖片描述

我們點選啟動後是可以看到服務是**running**狀態了,這時候再進行連線,這個錯誤就不會出現了,根據你的作業系統來進行開啟這個服務

這裡寫圖片描述

最基礎的Oracle的兩個服務就是 OracleServiceORCL 跟OracleOraDb10g_home1TNSListener這兩個字眼的服務,這兩個服務執行才能保證資料庫是執行的

ORA-01017:invalid username/password ; login denied

0.2.0oracle密碼錯誤

這個看字面意思就知道是賬號密碼有問題了,話說我安裝完Oracle後我還沒有修改過密碼,我只知道有個預設的超級管理員賬戶,跟我安裝Oracle時候填的那個密碼,可能我寫錯了,這個時候肯定改下密碼好,就不用不想了,修改密碼第一步,進入命令列控制介面,看圖中的指令,在Windows系統中以管理員賬號登陸的話好像是自動驗證計算機賬號成功就可以直接進入資料庫後臺介面,這個也有待驗證,我也是看Csdn有博主這樣回答的,輸入這行命令後以sysdba

身份進行管理介面

0.2.1修改密碼第一步,進入控制介面

然後我們就開始修改某個賬號的密碼了

修改某個賬號的密碼

這裡在網上找到一種修改密碼的方法,僅供參考

網上找到一種修改密碼的方法
修改密碼後使用正確的賬號密碼登陸是沒問題的

ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

這裡寫圖片描述

繼續上一步後出現了這個錯誤,根據網上資料
說要切換登陸使用者的身份,這裡我一開始選擇的是預設的身份

這裡寫圖片描述

然後我們要進行切換為SYSDBA身份進行登陸

這裡寫圖片描述

切換為這個身份後,測試是連線成功的

這裡寫圖片描述

這裡關於對這個登陸身份,我在CSDN某博主是這樣解釋的

這裡寫圖片描述

normal身份是普通使用者身份
sysdba身份擁有最高的系統許可權,登陸後是 SYS(通過命令“show user”檢視一下即可知道)
sysoper身份主要用來啟動、關閉資料庫,sysoper 登陸後用戶是PUBLIC

就這樣我使用Navicat for Oracle是成功登陸的,然後接下來就是使用PL/SQL 進行登陸,官方介紹說是目前為止比較專業的Oracle資料庫開發軟體

PL/SQL Initialization error 初始化失敗

這裡寫圖片描述

這個原因是因為PL/SQL只能使用32位的Client進行連線Oracle資料庫,而我現在安裝的是64位的Client,所以肯定會連線失敗,所以我們去下載一個32位的Oracle Client,注意名字

這裡寫圖片描述

解壓後是這樣的

這裡寫圖片描述

ORA-12154:: TNS:could not resolve the connect identifier specified
點選安裝後32位的Oracle Client後,出現了這個報錯我們點選取消登陸,進入PL/SQL的系統設定介面,點選工具>首選項,很容易找到的,然後修改連線的方式,兩個下拉框裡面都是選擇32位Oracle Client的那個

這裡寫圖片描述

修改完退出,重新登陸,這個時候就是可以登陸進去了

element listener-class is not allowed here
這個是我在配置Spring的監聽器的時候,IDEA莫名其妙地給我報的錯,我第一懷疑是順序放錯了,仔細看了下,我的監聽器是放在Servlet前面,無奈只能上谷歌上去搜索下了,找到的答案居然是 xml schema約束的問題

這裡寫圖片描述

看起來是沒錯的,但是在StackOverFlow找到一篇答案

這裡寫圖片描述

答案居然是要把約束裡面的版本改成3.0,那我就改了,改完後不報錯了

這裡寫圖片描述

web.xml 檔案的 listener 標籤必須在 servlet 標籤 之前

package com.sun.image.codec.jpeg does not exist

包這個錯的原因是因為Maven專案裡面引用了一個工具類,涉及到com.sun.image.codec.jpeg 包裡面的引用,然後Maven專案沒有匯入這些包,所以會報錯,我們在POM.xml中加入引用就好了

這裡寫圖片描述

解決了這個問題,花兩個小時總結出今天遇到的問題,其實弄了四五天了,太菜了沒辦法,努力!