java-ee – 处理Java EE和java.endorsed.dirs的最佳实践?
|
我最近遇到了glassfish standalone(v3.1)vs glassfish embedded(v3.1)vs java SE以及 java.endorsed.dirs的使用方式的问题.我遇到的具体问题是 here,但我认为这不是我最后一次遇到类似问题. 我在here和here找到的信息建议在编译时将glassfish认可的lib添加到bootstrap类路径中.但是,this错误报告表明在使用glassfish嵌入时很难正确设置已认可的库. 因此,似乎当我部署到一个独立的glassfish容器时,我的应用程序将针对glassfish包含的认可库运行,但是当使用嵌入式容器时它不会.我遇到了我原来的问题,因为maven-embedded-glassfish-plugin没有启动使用像glassfish独立的认可库这样嵌入的glassfish.我也不确定其他容器(例如:jboss)是否包含与glassfish相同的一组认可库. 所以,我(1)应该努力(很多)确保我的应用程序是针对认可的lib编译的,并且总是部署到使用被认可的libs引导的容器中,或者我应该(2)只是坚持使用捆绑的东西使用Java SE 6? 如果我选择(2),在将应用程序部署到使用较新的认可库进行自举的容器时,是否需要担心不兼容问题? 我很感激任何人都可以提供的任何见解. 解决方法我可能会遗漏一些明显的东西,但是……不是GlassFish Embbeded附带了与Java EE规范兼容的库吗?并不是默认加载的那些库? (如果不是,请填写错误: http://java.net/jira/browse/EMBEDDED_GLASSFISH).我的意思是:您应该针对Java EE规范API进行编译,并让容器使用它自己的实现. 对于第一部分,如果你使用Maven,我喜欢Codehaus archetypes设置被认可的库的方式.它既干净又应用服务器不可知: <properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
… <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
… <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>6.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
这几乎是您针对Java EE 6 API编译项目所需的全部内容.任何符合Java EE 6的App Server都应该提供这些服务,您不应该担心它们如何使它可供您的应用程序使用. 引导Java EE服务的责任应该是您的App Server.如果你尝试自己的“内部”解决方案,JAR Hell可能会破裂. 干杯, (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java 在Jetty9中使用HttpSessionListener和Filte
- 引用另一个Java项目的Java Web Project
- java – ** BUSTED **如何使用sun.misc.Unsafe加
- java – 验证不适用于Play Framework 2中的嵌套对
- const和volatile指针之间有什么区别?
- Java的微信开发中使用XML格式和JSON格式数据的示
- Java面试题-实现复杂链表的复制代码分享
- java – 给定一个IP地址列表,你如何找到min,max?
- Java GZIP压缩与解压缩代码实例
- java – Spring Boot Security不会抛出401 Unaut
