【发布时间】:2011-07-04 11:31:30
【问题描述】:
最近我开始与 RAD 和 WebSphere 合作开发 Web 服务,发现一旦对代码进行了更改,重新发布 ear 文件需要一段时间。
有什么加快速度的技巧和建议吗?
【问题讨论】:
最近我开始与 RAD 和 WebSphere 合作开发 Web 服务,发现一旦对代码进行了更改,重新发布 ear 文件需要一段时间。
有什么加快速度的技巧和建议吗?
【问题讨论】:
有一个已知问题,请参阅:http://www.ibm.com/support/docview.wss?rs=180&uid=swg21396021
在 web.xml 中将 metadata-complete 值设置为 true 将防止扫描注释并加快处理速度。
你也可以在模块的manifest文件中使用Annotation扫描过滤器来选择性地阻止对jar文件的注解扫描。
【讨论】:
试试这个,看看这篇文章有没有什么内容
https://www.ibm.com/developerworks/wikis/download/attachments/113606723/radtipsv754.pdf
让您的 RAD 比现在更快地为您工作。
HTH 芒露
【讨论】:
这不是 RAD 特有的,但是在使用 WebSphere 工作多年后,我发现如果您不修改部署描述符或 Web 服务描述符,您可以简单地更新您的 installedApps 文件夹中的分解 EAR/WAR 文件WAS 应用程序服务器。要更新,您只需将新的 JAR 文件“解压缩”到文件夹中即可。
然后重新启动应用程序服务器。明显更快,尤其是在您的 WAS 启动速度很快的情况下。
【讨论】:
减慢 RAD 的烦人事情之一是服务器自动发布。因此,如果您可以更改服务器配置编辑器中的选项(您可以通过在服务器视图中双击服务器来访问),这可能会阻止在你不想要的时候。确保在需要进行更改时发布它。
另外我认为,如果您将选项更改为“发布而不复制资源”,这也可以加快您的服务器启动速度。
【讨论】:
很遗憾,自从我们刚刚从 RAD 迁移到 Eclipse 后,我还没有机会试用它,但我建议您花几分钟时间检查一下 JRebel 是否与 RAD 一起使用。
如果它确实有效,它会将构建/部署的数量减少到每天近 1 次(或计算机重启),就像我在从 RAD+WAS7.5 迁移后使用 Eclipse+WAS8.5 所经历的那样。
@Edit:RAD 确实不需要支持 JRebel,因为它被设计为独立于 IDE 运行,就像 maven、ant 和大量其他有用的工具一样。更重要的是它与 Websphere 一起运行,我假设 WAS 部署过程占用了您想要节省的大部分时间。
【讨论】:
有一些简单的步骤可以显着提高应用程序在 WebSphere 上的部署速度:
使用所有第三方 jar 定义 Ignore-Scanning-Archives,您不希望 Webshere 扫描注释。您可以在清单文件中或简单地在 pom.xml 中执行此操作。小心它,没有正则表达式,如果你在 manifest 的一行中编写多个 jar,由于 manifest.mf 的行长限制,它将无法工作。如果你在 manifest.mf 中写它,你需要在行首用空格换行(见下面的例子)。
但是你可以在maven war插件的配置中写成一行(见下面的完整示例),Maven会自动将它分成多行。
第二种方法是在 Manifest/Maven/Websphere 中定义 Enable-Implicit-Bean-Archive 为 false 它将禁用不包含 beans.xml 的包中的 CDI
第三种方法是在 Websphere JVM 属性中增加 Java 堆大小。你需要去:Websphere IBM Console -> Servers -> {your server} -> Server Infrastructure -> Java and Process Management -> Process definition -> Additional Properties -> Java Virtual Machine -> 设置初始堆大小(MB) - 300(或更多) 最大堆大小(MB) - 600(或更多)
pom.xml 中 maven-war-plugin 的代码示例:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<packagingExcludes>pom.xml</packagingExcludes>
<archive>
<manifestEntries>
<Enable-Implicit-Bean-Archive>false</Enable-Implicit-Bean-Archive>
<Ignore-Scanning-Archives>
hibernate-core-5.2.10.Final.jar,httpclient-4.4.1.jar,poi-ooxml-3.17.jar,poi-3.17.jar,poi-ooxml-schemas-3.17.jar,antlr-2.7.7.jar, apns-1.0.0.Beta6.jar,ews-java-api-2.0.jar,itextpdf-5.5.11.jar,byte-buddy-1.6.6.jar,xmlbeans-2.6.0.jar,guava-23.5-jre.jar,commons-collections4-4.1.jar
</Ignore-Scanning-Archives>
</manifestEntries>
</archive>
</configuration>
</plugin>
manifest.mf 示例
Manifest-Version: 1.0
Built-By: your-name
Enable-Implicit-Bean-Archive: false
Created-By: IntelliJ IDEA
Build-Jdk: 1.8.0_144
Ignore-Scanning-Archives: hibernate-core-5.2.10.Final.jar,httpclient-4
.4.1.jar,poi-ooxml-3.17.jar,poi-3.17.jar,poi-ooxml-schemas-3.17.jar,a
ntlr-2.7.7.jar, apns-1.0.0.Beta6.jar,ews-java-api-2.0.jar,itextpdf-5.
5.11.jar,byte-buddy-1.6.6.jar,xmlbeans-2.6.0.jar,guava-23.5-jre.jar,c
ommons-collections4-4.1.jar
【讨论】: