Java 在我的独立ejb模块中,我永远不能引用任何外部第三方jar吗?
我们是否永远都不能在独立ejb模块中引用任何外部第三方jar(除了在appserver/lib中复制jar文件)?这似乎不合逻辑,不是吗?我不想创建企业应用程序。如果我必须使用任何jar文件,为什么我必须创建一个企业应用程序Java 在我的独立ejb模块中,我永远不能引用任何外部第三方jar吗?,java,jakarta-ee,ejb,ear,Java,Jakarta Ee,Ejb,Ear,我们是否永远都不能在独立ejb模块中引用任何外部第三方jar(除了在appserver/lib中复制jar文件)?这似乎不合逻辑,不是吗?我不想创建企业应用程序。如果我必须使用任何jar文件,为什么我必须创建一个企业应用程序 没有其他选择吗 好吧,我想我给了你一个很好的解释: EJB没有等效的WEB-INF/lib,虽然在EJB-JAR中打包库可能适用于某些应用程序服务器,但这不是1的一部分,并且不符合Sun的相关标准 我不知道要添加什么,如果你想编写可移植的应用程序,你必须遵循规则。是否是由于
没有其他选择吗 好吧,我想我给了你一个很好的解释: EJB没有等效的WEB-INF/lib,虽然在EJB-JAR中打包库可能适用于某些应用程序服务器,但这不是1的一部分,并且不符合Sun的相关标准 我不知道要添加什么,如果你想编写可移植的应用程序,你必须遵循规则。是否是由于技术限制(见脚注),这不是问题,规则就是规则 另一种方法是在EJB-JAR中解压库,这非常难看(在应用程序服务器类路径中复制库对于可移植应用程序来说不是一种选择) 也就是说,如果您使用的是JavaEE6,那么现在就可以了
1如中所述,jar规范不支持jar文件中的jar文件(从技术上讲,Java的URL支持只支持一个层次:例如jar:URL/to/file!path/in/jar是允许的,但是jar:jar:URL/to/file!path/in/jar不是),因此,尽管可以在ejb jar中复制jar文件,但不会从中加载任何内容。,我想我给了你一个很好的解释: EJB没有等效的WEB-INF/lib,虽然在EJB-JAR中打包库可能适用于某些应用程序服务器,但这不是1的一部分,并且不符合Sun的相关标准 我不知道要添加什么,如果你想编写可移植的应用程序,你必须遵循规则。是否是由于技术限制(见脚注),这不是问题,规则就是规则 另一种方法是在EJB-JAR中解压库,这非常难看(在应用程序服务器类路径中复制库对于可移植应用程序来说不是一种选择) 也就是说,如果您使用的是JavaEE6,那么现在就可以了
1如中所述,jar规范不支持jar文件中的jar文件(从技术上讲,Java的URL支持只支持一个级别:例如,允许使用jar:URL/to/file!path/in/jar,但不支持jar:jar:URL/to/file!path/in/jar),因此,尽管可以在ejb jar中复制jar文件,不会从中加载任何内容。您已经选择了一个答案,但我要提到的是,“已安装的可选软件包”可能会提供一个解决方案,具体取决于您的服务器中可用的功能。您已经选择了一个答案,但我要提到的是,“已安装的可选软件包”可能会提供一个解决方案,取决于服务器中可用的功能。Hi Pascal,毫无疑问,您给出了非常好的解释。但我认为这是一个主要的限制。无论如何,我没有任何选择:(。暂时我已经在我的服务器的lib文件夹中复制了log4j。再次感谢!嗨,帕斯卡,毫无疑问你给出了非常好的解释。但我认为这是主要限制之一。无论如何,我没有任何选择:(.暂时我已经在我的服务器的lib文件夹中复制了log4j。再次感谢!这是标准吗?我的回答是关于标准的,我没有包括特定于应用服务器的功能(如WLS 9+Java EE平台规范中的应用程序库支持),第EE.8.2节:“Java EE产品需要支持使用扩展机制体系结构和可选包版本控制规范(位于)和JAR文件规范(位于)中指定的捆绑和安装的库。“你的意思是使用
\lib\ext
?JAVA_HOME/lib/ext/是一种实现。WAS还允许与共享库交互(我不知道是否有其他供应商有类似的功能):这是标准吗?我的答案是关于标准的,我没有包括应用程序服务器特定的功能(如WLS 9+中的应用程序库支持)JavaEE平台规范,第EE.8.2节:“JavaEE产品需要支持在扩展机制体系结构和可选包版本控制规范(可在上获得)和JAR文件规范(可在上获得)中指定的捆绑和安装库的使用。”您的意思是使用\lib\ext
?JAVA_HOME/lib/ext/是一种实现。WAS还允许与共享库交互(我不知道是否有其他供应商有类似的功能):