引用
包密封
密封 JAR 文件中的一个包意味着在这个包中定义的所有类都必须在同一个 JAR 文件中找到。这使包的作者可以增强打包类之间的版本一致性。密封还提供了防止代码篡改的手段。
要密封包,需要在 JAR 的 manifest 文件中为包添加一个 Name 头,然后加上值为“true”的 Sealed 头。与可执行的 JAR 一样,可以在创建 JAR 时,通过指定一个具有适当头元素的 manifest 文件密封一个 JAR,如下所示:
Name: com/samplePackage/
Sealed: true
Name 头标识出包的相对路径名。它以一个“/”结束以与文件名区别。在 Name 头后面第一个空行之前的所有头都作用于在 Name 头中指定的文件或者包。在上述例子中,因为 Sealed 头出现在 Name 头后并且中间没有空行,所以 Sealed 头将被解释为只应用到包 com/samplePackage 上。
如果试图从密封包所在的 JAR 文件以外的其他地方装载密封包中的一个类,那么 JVM 将抛出一个 SecurityException 。
在打包jar时声明Sealed: true,主要目的是防止不同版本之间的jar之间互相调用类,从而导致不可预知的问题,比如在应用下如果有两个hibernate的jar,分别是hibernate2.jar、hibernaet2_1.jar,明显两个版本不一致,打包时声明Sealed: true,则hiberante2.jar里的类只能装载调用本Jar文件里的其他类,而不能调用hibernate2_1.jar里的其他类。
gbase打包时包名与Hibernate提供的dialect包名均为net.sf.hibernate.dialect,且声明Sealed: true,JVM会认为所有在net.sf.hibernate.dialect包中的文件都应该在同一个jar下,hibernate2.jar中的类不会去调用gbase_dialect.jar下的文件,找不到net.sf.hibernate.dialect.GBaseDialect类的情况下,JVM使用hibernate提供的默认的GenericDialect,这个类继承自abstract类Dialect,Dialect提供的getSequenceNextValString()方法,默认实现是:
Java代码
1.public String getSequenceNextValString(String sequenceName)
2. throws MappingException
3. {
4. throw new MappingException("Dialect does not support sequences");
5. }
public String getSequenceNextValString(String sequenceName)
throws MappingException
{
throw new MappingException("Dialect does not support sequences");
}
将gbase打包时Sealed: true去掉,则JVM可以顺利找到gbase的net.sf.hibernate.dialect.GBaseDialect。
分享到:
相关推荐
jar包大小:342KB log4j-1.2.6.jar jar包大小:135KB commons-validator-1.3.1.jar jar包大小:93KB commons-transaction-1.2.jar jar包大小:141KB commons-scxml-0.6.jar jar包大小:254KB commons-primitives-1.0.jar ...
udp-3.0.11.jar,cxf-rt-wsdl-3.0.0.jar,cxf-rt-ws-security-3.0.0.jar,neethi-3.0.3.jar,slf4j-api-1.7.7.jar,stax2-api-3.1.4.jar,woodstox-core-asl-4.4.1.jar,wsdl4j-1.6.3.jar,wss4j-bindings-2.0.9.jar,xml...
poi的所有jar包,poi, poi-ooxml,poi-ooxml-schemas的各个版本jar poi的所有jar包,poi, poi-ooxml,poi-ooxml-schemas的各个版本jar
log4j-core.jar包,log4j-core.jar包,log4j-core.jar包,log4j-core.jar包,log4j-core.jar包,log4j-core.jar包,log4j-core.jar包,log4j-core.jar包
commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包加源码
【MySQL数据库】〖mysql8驱动jar包〗mysql-connector-java-8.0.23.jar 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
mybatis-plus3.5.2常用jar包,mybatis-plus-3.5.2.jar、mybatis-plus-annotation-3.5.2.jar、mybatis-plus-core-3.5.2.jar、mybatis-plus-extension-3.5.2.jar、mybatis-plus-generator-3.5.2.jar和源码包mybatis-...
Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar
【MySQL数据库】〖mysql8驱动jar包〗mysql-connector-java-8.0.22.jar 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
xwork-1.1.1.jar, xwork-1.1.jar, xwork-1.2.1.jar, ...xwork-jar.jar, xwork-src-1.2.1.jar, xwork-tiger-1.2.1.jar, xwork-tiger-1.2.3.jar, xwork-tiger-src-1.2.1.jar, xwork-tiger.jar, xwork.jar, xwork2.jar
spring 3.2.4 Realease 的所有jar包: spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-...
CXF接口所有所需jar包 1.cxf-2.3.3.jar 2.geronimo-annotation_1.0_spec-1.1.1.jar 3.geronimo-jaxws_2.2_spec-1.0.jar 4.geronimo-stax-api_1.0_spec-1.0.1.jar 5.geronimo-ws-metadata_2.0_spec-1.1.3.jar 6...
【MySQL数据库】〖mysql8驱动jar包〗mysql-connector-java-8.0.21.jar 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
plexus-archiver-1.0-alpha-7.jar plexus-build-api-0.0.4.jar plexus-cipher-1.7-sources.jar plexus-classworlds-2.5.1-sources.jar plexus-compiler-api-1.9.1.jar plexus-compiler-api-2.2.jar plexus-compiler-...
aopalliance-1.0.jar aspectjrt-1.5.4.jar aspectjweaver.jar commons-codec-1.3.jar commons-collections-3.2.jar commons-logging-1.1.1.jar jstl-1.1.2.jar log4j-1.2.14.jar spring-aop-2.0.8.jar spring-beans-...
jar包版本9.4.8.v20171121,包含jetty-server-9.4.8.v20171121.jar,jetty-servlet-9.4.8.v20171121.jar,jetty-http-9.4.8.v20171121.jar,jetty-webapp-9.4.8.v20171121.jar,jetty-servlets-9.4.8.v20171121.jar...
jdbc链接mysql数据库的jar包(mysql-connector-java-5.0.8-bin.jar)
maven-jar-plugin-2.4.jar maven-model-3.2.1-sources.jar maven-model-builder-3.2.1-sources.jar maven-osgi-0.1.0.jar maven-osgi-0.2.0.jar maven-plugin-annotations-3.1.jar maven-plugin-api-3.2.1-sources....
本篇文章将深入探讨MMAnalyzer的使用以及与之相关的两个核心JAR包:`jeasy.analysis.MMAnalyzer`和`lucene-core-2.4.1.jar`。 首先,MMAnalyzer是JeasyAnalysis的一部分,JeasyAnalysis是一个轻量级的中文分析库,...
因与cxf包xmlschema-core-*.jar 冲突 故重新打包 XmlSchema-1.1.jar 源码修改原类径的方法来重新打包避免冲突 源码放在javas.rar文件夹中 org.codehaus.xfire.wsdl11.parser.SchemaInfo org.codehaus.xfire....