谁能用起来这个东东,然后教教我(200分)

  • 主题发起人 主题发起人 uuid
  • 开始时间 开始时间
U

uuid

Unregistered / Unconfirmed
GUEST, unregistred user!
一个俄国老兄根据Scott Ambler的著名的白皮书:
The Design of a Robust Persistence Layer for RDB
实现的一个持久层
详细资料可参考 http://player.sourceforge.net/
应该算是一个library吧,含一个test
哪位能摸索一下,然后教我如何才能用起来那个test
另外如何基于这些自己建立一个demo
应该不难,无奈小弟对Java几乎一点不懂
恳请不烦赐教
 
勉强自己把test编译了,但有几个问题:
1。对于package如何用jar打包?
我举例说明这个问题:
/** Hello.java */
package demo;
public class Hello {
public static void main(String[] args)
{
System.out.println("Hello");
}
}
编译:javac -d . Hello.java
运行:java demo.Hello
但是我用jar打包出现问题
jar cvfm Hello.jar manifestfile -C /demo/ .
我的mainfest文件中Main-Class设为Hello或demo.Hello都不行
2.由于有第一个问题,只好java pl.test.Test
报错:
A nonfatal internal JIT (3.10.107(x)) error 'Relocation error: NULL relocation t
arget' has occurred in :
'org/apache/crimson/parser/Parser2.maybeComment (Z)Z': Interpreting method.
Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cg
i
pl.PlException: Error in Database persisntece mechanism definition. Class pl.tes
t.OracleDatabase not found for persistence mechanism
at pl.XMLConfigLoader.getRelationalDatabase(XMLConfigLoader.java, Compil
ed Code)
at pl.XMLConfigLoader.loadConfig(XMLConfigLoader.java, Compiled Code)
at pl.PersistenceManagerFactory.loadConfig(PersistenceManagerFactory.jav
a:58)
at pl.test.Test.performTest(Test.java, Compiled Code)
at pl.test.Test.main(Test.java:32)
需要说明的是
我在Test执行开始加了println("OK")
在报错之前也显示出了"OK"

 
用google搜了一下
关于A nonfatal internal JIT (3.10.107(x)) error :
By definition, it's a JVM bug. There is no possible Java which may validly
cause the VM to crash. (well, apart from Java which calls native code).
Try turning off the JIT. It will be slower but at least it won't crash.
Also, try different VMs, eg IBM, or JDK1.4.
Message I agree with the diagnosis;
if you spend 5 minutes filling up the
sun bug report
(http://java.sun.com/cgi-bin/bugreport.cgi) you'll receive an automatic
reply
stating to upgrade your jdk - or else
to turn off jit.
难怪,我用的是Jdk1.2.2
不过我想知道何为JIT?如何关闭JIT?

 
升级到jdk1.4,不再报错A nonfatal internal JIT (3.10.107(x)) error
但另一个问题仍存在:
Class pl.test.OracleDatabase not found for persistence mechanism
OracleDatabase.java与Test.java在同一个package: pl.test
不知道是不是和用下面这个命令有关:
java pl.test.Test
(这个问题或许和我上面提出的“对于package如何用jar打包?”相关)
 
主要问题没搞定,不过搞清楚了用jar对package打包
对于上面举的那个例子:
mainfest文件中 Main-Class: demo.Hello
jar cvfm Hello.jar manifestfile demo

 
确定问题出在OracleDatabase.init()中的下面这句:
DriverManager.registerDriver((Driver)(Class.forName(driver).newInstance()));
更确切的讲应该是 (Driver)(Class.forName(driver).newInstance())
其中driver为String类型,是从oracleTest.xml中获取的,
并确知driver="oracle.jdbc.driver.OracleDriver"
寻求指点!
另:原先的报错 Class pl.test.OracleDatabase not found for persistence mechanism
是作者设置的异常。觉得不够精确,对于诊错反而有误导。
 
安装了Oracle的JDBC驱动,上述问题解决
可是出现新的问题:
java.lang.UnsatisfiedLinkError: no ocijdbc8 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
... ...
 
问题清楚了,oracleTest.xml文件需要customize
 
此问题结束
 

分数返还。
 
多人接受答案了。
 
后退
顶部