本文介紹了來(lái)自GlassFish控制臺(tái)的Derby身份驗(yàn)證錯(cuò)誤,但來(lái)自ij的相同憑據(jù)有效的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我第一次嘗試在沒(méi)有IDE的情況下運(yùn)行一個(gè)Java EE 7Web應(yīng)用程序,并艱難地完成了學(xué)習(xí)曲線。為了簡(jiǎn)單起見(jiàn),我從GlassFish 4.1和Derby 10.11.1.2開(kāi)始,這是我用于開(kāi)發(fā)的。
我目前的問(wèn)題是在GlassFish Web界面上配置連接池時(shí)出錯(cuò)。錯(cuò)誤為”連接身份驗(yàn)證失敗。原因:用戶ID或密碼無(wú)效”。然而,我在一個(gè)DoS提示符和Chrome的GlashFish Web控制臺(tái)中運(yùn)行了ij。
在ij中,我可以輸入‘CONNECT’jdbc:derby:localhost:1527/databasename;user=username;password=password‘;AND I CONNECT FOR并且可以查看表格等。在GlassFish Web控制臺(tái)中,我的名稱/值對(duì)具有相同的’USER‘和’PASSWORD‘值,但失敗了(完全相同的字母和大小寫(xiě))。我已嘗試更改‘lobaseName’屬性,以確保該錯(cuò)誤不會(huì)誤導(dǎo)人,并確認(rèn)已正確找到數(shù)據(jù)庫(kù)。
從表面上看,錯(cuò)誤消息似乎是錯(cuò)誤的,正如我在DOS窗口中所證明的那樣。我確信我做錯(cuò)了什么,但我不知道如何診斷它。有什么建議嗎?
所采取步驟的更多細(xì)節(jié):(盡管我確信這些步驟中的一些步驟優(yōu)于其他步驟,但我的不成功讓我產(chǎn)生了一種心態(tài),即冗余比省略更好–總的來(lái)說(shuō),它似乎比基本設(shè)置所需的要復(fù)雜得多)。我的目標(biāo)是WildFly,但GlassFish文檔更好,所以我想我應(yīng)該從那里開(kāi)始。
相關(guān)Windows環(huán)境變量:
JAVA_HOME=C:Program FilesJavajdk1.8.0_40
DERBY_HOME=%JAVA_HOME%db
DERBY_INSTALL=%DERBY_HOME%
JAVADB_HOME=%DERBY_HOME%
GLASSFISH=C:Program FilesJavaGlassFish-4.1
Path=%JAVA_HOME%in;%DERBY_HOME%in;%GLASSFISH%in;%GLASSFISH%glassfish
CLASSPATH=%DERBY_HOME%libderbynet.jar;%DERBY_HOME%libderbytools.jar;%DERBY_HOME%derbyclient.jar;%DERBY_HOME%libderbyrun.jar
WILDFLY_HOME=C:program filesjavawildfly8.2.0.Final
sysinfo顯示所有正確的路徑和版本
/li>
通過(guò)BalusC將許多derby JAR從%DERBY_HOME%lib復(fù)制到%glassFish%glassfish Domainsdomain1libext。我認(rèn)為類路徑復(fù)制了它,但不會(huì)有什么壞處
啟動(dòng)的域‘a(chǎn)sadmin start域’默認(rèn)為域1
通過(guò)更改目錄和使用Java啟動(dòng)了數(shù)據(jù)庫(kù)。我想使用‘a(chǎn)sadmin啟動(dòng)-數(shù)據(jù)庫(kù)–數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)路徑’,但這總是啟動(dòng)了錯(cuò)誤的版本。GlassFish和JDK都打包了derby/javadb,我和他們都想不出如何升級(jí)GlassFish或以其他方式啟動(dòng)正確的版本
cd usersjohn.netbeans-derby (root of the DB created by Netbeans)
Java –jar "%derby_home%libderbyrun.jar" server start
將瀏覽器連接到‘localhost:4848’以創(chuàng)建JDBC連接池和資源
連接池:池名稱=ConnectionPool,資源類型=javax.sql.DataSource,數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序供應(yīng)商=Derby,未啟用自檢(找到的文檔很少解釋它是什么)-步驟2保留為默認(rèn)值
編輯連接啟用池的Ping On常規(guī)選項(xiàng)卡識(shí)別錯(cuò)誤,其他屬性選項(xiàng)卡:將用戶更改為數(shù)據(jù)庫(kù)用戶名,將其他屬性保留為默認(rèn),添加…密碼=數(shù)據(jù)庫(kù)密碼,數(shù)據(jù)庫(kù)名稱=ClubScore
在提示設(shè)置每個(gè)屬性的過(guò)程中出現(xiàn)了錯(cuò)誤。未顯示缺少URL的錯(cuò)誤,但測(cè)試了以下使用和不使用URL=jdbc:derby://localhost:1527/ClubScoring
的步驟
JDBC資源。已添加JDBC/ClubScoring,pool=ConnectionPool=>已選擇并啟用
-
使用‘a(chǎn)sadmin start-database’從正確的目錄啟動(dòng)數(shù)據(jù)庫(kù)確實(shí)會(huì)讓?xiě)?yīng)用程序找到正確的數(shù)據(jù)庫(kù),但它會(huì)崩潰,因?yàn)閿?shù)據(jù)庫(kù)是用10.11.1.2版創(chuàng)建的,并且此命令啟動(dòng)了10.10.2.0的GlassFish版本
很抱歉這么長(zhǎng)時(shí)間,但我找不到任何地方以簡(jiǎn)單的方式列出所有步驟,并認(rèn)為從長(zhǎng)遠(yuǎn)來(lái)看,細(xì)節(jié)可以節(jié)省時(shí)間。
推薦答案
我今天處理這個(gè)問(wèn)題,找到了一個(gè)解決方案:
https://db.apache.org/derby/docs/10.14/ref/rrefattribsecmech.html
基本上唯一允許的安全選項(xiàng)(就10.14而言)是3、4和9。
4是缺省值,意思是";,而只是userid";。您可能認(rèn)為這意味著只要給出一個(gè)用戶ID,您就可以連接。但同時(shí)設(shè)置兩個(gè)似乎是個(gè)問(wèn)題。
若要使用(明文)密碼和用戶ID,您必須指定3。如果屬性被刪除或也為0,它也有效,但我認(rèn)為這樣做不會(huì)獲得任何安全性。
這篇關(guān)于來(lái)自GlassFish控制臺(tái)的Derby身份驗(yàn)證錯(cuò)誤,但來(lái)自ij的相同憑據(jù)有效的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,