2007-08-29

jobss类加载

一般来说, 象httpclient, logging等, 不会从ear包内加载, 而是用jboss现有的.如果想加载, 要在meta-inf/下加个jboss-app.xml文件, 内容大概是:
<jboss-app>
<loader-repository>some.dot.com:loader=webtest.ear</loader-repository>
</jboss-app>
原文

然后我就照这个办了, 后来发现还不行, 说是mdb(部署了一个message-driven bean)不合规范:
section:15.7.4
The message driven bean must declare one onMessage method

后来才发现, 不知道哪个傻X把geronimo-j2ee-spec.jar放到ear包里来了, NND, 估计是geronimo与jboss验证方法不一样吧.

去掉就OK了. 还有个关于logging的, 不加jboss-app.xml的话, 会自动把你自己ear内的logging.jar忽略掉(而用jboss服务器的), 加了jboss-app.xml, ear的classLoader也会把ear里面的logging.jar加载上 , 然后Log对象就发现它有两个版本(一个jboss的, 一个ear载的).就会报错(检查的还挺仔细)

再这么下去, 快成jboss专家了....

--
It's Hard to Define, But I Know it When I See it…

No comments: