类加载:
你是对的,把 s 放到 , 或 ..jar
JBOSS/server/<configuration>/lib
JBOSS/lib
JBoss AS附带了捆绑的Hibernate库,这些库与AS版本一起进行了测试。
看:jboss-6.0.0-SNAPSHOT\server\default\conf\jboss-service.xml
<server>
<!-- Load all jars from the JBOSS_HOME/server/<config>/lib directory and
the shared JBOSS_HOME/common/lib directory. This can be restricted to
specific jars by specifying them in the archives attribute.
TODO: Move this configuration elsewhere
-->
<classpath codebase="${jboss.server.lib.url}" archives="*"/>
<classpath codebase="${jboss.common.lib.url}" archives="*"/>
</server>
另请参阅:
WEB-INF/lib
和 JBOSS/server/default/lib
之间的区别:
中的 Libs 随你的 WAR 一起提供,并且只在 WAR 中可见。如果你有其他模块,例如EJB JAR,它们将不可见,你会得到或(如果你在多个地方有这个类)。WEB/lib
ClassNotFoundException
ClassCastException
中的 Lib 对于整个服务器都是可见的,因此所有已部署的应用程序及其模块都是可见的。但是(IIRC)它们没有优先级,因此,如果您将该库(例如在WAR中,但不在EJB jar中)带来,则最终可以使用两个不同的版本,这是不希望的(可能会导致上述)。JBOSS-AS/server/<config>/lib
ClassCastException
类加载行为可以通过多种方式进行调整,例如JBoss wiki。
静态数据:
不要依赖Java EE中的静态字段,这会带来麻烦。例如。同一个类可以由不同的类装入器装入,因此这些静态值将有多个实例。
如果要在更多 WAR 之间共享数据,请使用外部存储 - 数据库、文件(如果写入文件,则具有同步功能)、JBoss 缓存等。