今天使用glassfish部署一個(gè)EJB的應(yīng)用,這個(gè)EJB又引用到了第三方庫(kù),并且第三方庫(kù)又使用了本地方法,需要導(dǎo)入兩個(gè)DLL動(dòng)態(tài)鏈接庫(kù).反反復(fù)復(fù)部署了很久,終于還是部署成功了.
一開(kāi)始,我是把那兩個(gè)DLL文件放到SYSTEM32下面,后來(lái)發(fā)現(xiàn),當(dāng)服務(wù)器起動(dòng)的時(shí)候,總是提示鏈接錯(cuò)誤,找不到DLL文件,我就覺(jué)得奇怪了,SYSTEM32可是默認(rèn)最PATH的地方了,于是在起動(dòng)的時(shí)候特意輸出一句System.out.println(System.getProperty("java.library.path")),發(fā)現(xiàn)還真的沒(méi)有SYSTEM32文件夾,它輸出的盡是一些glassfish下面的一些目錄,什么bin啊,lib目錄啊,后來(lái)把這兩個(gè)dll文件放到這些里面以后,問(wèn)題又來(lái)了,拋出一個(gè)錯(cuò)誤,NoClassDefFoundError,沒(méi)有此類的定義,天啊,第三方的庫(kù)我可是都打進(jìn)了EJB的那個(gè)JAR包了,然后它不會(huì)自己找?無(wú)語(yǔ)了,只有把那三個(gè)第三方的JAR包,放到glassfish認(rèn)為的lib目錄下,終于完全起動(dòng)好了.
小結(jié):1,不知道EJB的JAR包能不能把第三方的庫(kù)打入JAR包里面,以前寫(xiě)enterprise application的時(shí)候,JAR包是可以包進(jìn)去的,不過(guò)一直都是用netbeans的自動(dòng)打包自動(dòng)部署功能,所以一旦脫離了netbeans,都不知道該怎么辦了,鬼知道netbeans要打包的時(shí)候,搞了一些什么鬼東西.
2,為什么system32的PATH,glassfish就是不認(rèn)呢?人才,確實(shí)是人才.
今天心情不太好,所以瞎寫(xiě)了幾下,做為記錄,glassfish還是很牛的,只是我不會(huì)用罷了.
盡管千里冰封
依然擁有晴空
你我共同品味JAVA的濃香.