草庐IT

multi-release-jar

全部标签

java - 作为 JAR 文件的 Web 服务,或另一个 WAR 中的 WAR?

我有一个在Tomcat6上运行的SOAPWeb服务(使用SpringWeb服务,Java)现在我想将此Web服务合并到另一个大型Web应用程序(使用Spring、Java而不是Web服务)并将该Web服务用作主要Web应用程序的插件。我的意思是,当我运行我的主应用程序时,我的Web服务也将开始运行。他们将使用相同的资源。主Web应用程序已经有几个插件,它们是WEB-INF/LIB文件夹中的JAR文件。但是我的Web服务是一个WAR文件,所以我可以在另一个Web应用程序WEB-INF/LIB文件夹中使用一个Web应用程序(WAR文件)吗?如果我做不到,可以删除我的网络服务的WEB-INF

java - 如何处理 fat jar 依赖

我在我的项目中使用了一个我无法拒绝的专有依赖项。它建在一个大jar里,里面收集了所有依赖包。我的意思是即使是常见的,如slf4j-api、apache-commons、javax包等。将它与我自己声明的依赖项列表一起使用是有风险的,因为在类加载器中总是存在竞争,首先加载哪个类-我的或fatjar中的过时类。我想知道有没有办法解决这个问题?如何对待这样的肥jar?我正在使用maven进行依赖管理。 最佳答案 在Maven中,您在POM中定义依赖项的顺序非常重要。如果您以正确的顺序列出它们,则应按该顺序将它们添加到jar中,无论哪个类在

java - 验证来自已签名 jar 的 http 请求

我正在为我的网络应用程序编写客户端,并且我使用我的开发人员证书签署了发布jar,我如何验证对休息服务的请求来self签署的jar? 最佳答案 你不能。签名用于执行验证,这意味着它在服务器端。但是您想检查客户端http/rest请求的签名。客户端没有这样的验证。您可以向响应本身添加一些内容并在客户端对其进行验证,但是同样,没有什么可以阻止任何其他服务器发送相同的值并假装是您的服务器。您还可以向您的jar添加一些行为特征(如sessioncookie),但是同样,没有什么能阻止其他jar也效仿它。

java - 如何在 Eclipse 下导出带有图标和 native 扩展名的 .jar

我用Eclipse开发了一个Java应用程序。我还以.jar格式导出。效果很好,但也有一些问题;图标是JVM的一个,不能修改如果运行应用程序的PC没有JavaSDK,应用程序无法启动。在某些情况下,例如Linux,如果用户选择框授权,应用程序将不会启动。所以最后,我想将.jar文件转换为其他操作系统的native格式,例如.exe、.app和.deb带有特定的图标。我该怎么做? 最佳答案 1)TheiconistheoneoftheJVMandcan'tmodify2)IfthePCwheretheapplicationruns,i

java - 在 jar 启动时预加载 java 类/库?

第一次RPC调用服务器时发生超时,但子请求成功。服务器响应超时,因为在第一次调用时它加载了处理请求所需的库。由于这种延迟,一些客户端会超时。尽管可以增加客户端的超时延迟,但我想尽量减少类加载对应用程序响应能力的影响。您将如何预加载Java类文件,以便在应用程序的.jar文件首次运行时类加载不会在第一次调用时引入延迟? 最佳答案 您可以在服务器上线之前运行负载。您没有指定如何加载服务器、类和环境,但是您可以利用类静态初始化器将在加载类时运行这一事实。所以,如果您从“main”方法运行,您的类可能看起来像这样publicclassFoo

java - 获取 EAR 中 JAR 中文件的绝对路径?

我有一个部署为EAR文件的J2EE应用程序,它又包含一个用于业务层代码(包括一些EJB)的JAR文件和一个用于Web层代码的WAR文件。EAR文件部署到JBoss3.2.5,JBoss3.2.5解压EAR和WAR文件,但不解压JAR文件(这不是问题,仅供引用)。JAR文件中的一个文件是一个MSWord模板,其绝对路径需要传递给某些nativeMSWord代码(使用Jacob,FWIW)。问题是如果我尝试像这样获取文件(从JAR文件中的某些代码中):URLurl=getClass().getResource("myTemplate.dot");Filefile=newFile(url.t

java - 如何将 SVN 修订号注入(inject) JAR?

我希望我的JAR/WAR应用程序知道其源代码的SVN修订号是多少。我希望稍后在网页底部等处为Web最终用户呈现此修订号。是否有任何现有的Maven插件来自动化该过程?我认为该插件必须从svn收集信息并保存到某个文件,例如src/resources/revision.txt。 最佳答案 此页面提供了几乎相同问题的答案:Maven食谱:HowToAddSVNRevisionToAJARManifest?在您的情况下,您需要为resourcefiltering使用buildNumber变量,而不是构建list条目。

java - 在运行时将 jars 添加到 Eclipse 插件

我正在开发一个Eclipse插件,它需要在编译时未知的类。这些类以jar文件的形式通过网络发送。我想在运行时动态加载这些类。我已经尝试过此处列出的方法:http://blog.imaginea.com/making-applications-work-together-in-eclipse/不幸的是,它没有达到预期的效果。虽然确实加载了类,但我不能在加载它们的函数之外使用它们。我猜这与使用不同的类加载器有关。感谢任何帮助。即使您告诉我,这是不可能的,所以我知道我不必再看下去了。 最佳答案 如果您将这些jar打包成OSGi包(即,给它

java - 如何从 JAR 中提取文件夹

我需要复制一个文件夹,在运行时打包在一个Jar中。我想通过调用一个类中的函数来实现,该类也包含在同一文件夹中。我试过使用getSystemResource:URLsourceDirUrl=ClassLoader.getSystemResource("sourceDirName");FilesourceDir=newFile(sourceDirUrl.toURI());但它不起作用。我可能必须递归地使用getResourceAsStream函数。有没有更优雅/更直接的方式来做到这一点?万一我必须递归地做:1.我不想硬编码指定文件,我想动态指定2.我不想创建一个单独的存档。我希望这个资源与

java - log4j.properties 在可执行 jar 中不起作用

我正在使用eclipse,我已将log4j.properties放在项目目录中,我通过调用访问它PropertyConfigurator.configure("log4j.properties");这在Eclipse中工作正常,但是当我将项目提取为可执行Jar并在另一台机器上运行它时,我收到一条错误消息,指出它找不到log4j.properties。有什么解决办法? 最佳答案 发生了什么PropertyConfigurator.configure(String)从文件系统加载和读取文件。您的属性文件位于项目目录中,当您从eclips