Glassfish 中部署的“应用程序客户端”只能在签署 jar 文件时通过 java-web-start 启动。因此,当我使用“glassfish Web 管理控制台”部署它时,jar 文件已签名并且一切都按预期工作。当我通过脚本(例如 jenkins)部署它时,web start 参数不起作用并且文件没有签名。结果:java web start 不起作用。
解决方案:我使用 maven 插件对 jar 文件进行签名。为此,我首先必须将 Glassfish 证书导入密钥库
keytool -importkeystore -srckeystore "../../glassfish/domains/domain1/config/keystore.jks"
带有“maven-jarsigner-plugin”插件的 pom 文件如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<configuration>
<alias>s1as</alias>
<storepass>changeit</storepass>
<keypass>changeit</keypass>
</configuration>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
现在我可以使用 asadmin 部署脚本部署应用程序,并且启用了 java-web-start!