maven-glassfish-plugin tries to start the domain when it is already started
我刚刚开始使用 maven-glassfish-plugin。我得到了起始域目标。但是,当我尝试执行部署目标时,插件认为域未启动并尝试重新启动它 - 这显然失败了。请参阅下面的日志:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | > mvn glassfish:start-domain [INFO] --- maven-glassfish-plugin:2.1:start-domain (default-cli) @ arquillian-sample --- [INFO] Deprecated syntax, instead use: [INFO] asadmin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --user admin --echo --terse=false start-domain [options] ... [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --echo=true --terse=false start-domain --debug=true --domaindir C:\\apps\\glassfish-3.0.1\\glassfish\\domains --help=false --upgrade=false --verbose=false domain1 [INFO] Waiting for DAS to start ... [INFO] Started domain: domain1 [INFO] Domain location: C:\\apps\\glassfish-3.0.1\\glassfish\\domains\\domain1 [INFO] Log file: C:\\apps\\glassfish-3.0.1\\glassfish\\domains\\domain1\\logs\\server.log [INFO] Admin port for the domain: 4848 [INFO] Debug port for the domain: 9009 [INFO] Command start-domain executed successfully. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ > mvn glassfish:deploy [INFO] --- maven-glassfish-plugin:2.1:deploy (default-cli) @ arquillian-sample --- [INFO] Domain domain1 isn't started. Starting it for you. [INFO] Deprecated syntax, instead use: [INFO] asadmin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --user admin --echo --terse=false start-domain [options] ... [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --echo=true --terse=false start-domain --debug=true --domaindir C:\\apps\\glassfish-3.0.1\\glassfish\\domains --help=false --upgrade=false --verbose=false domain1 [INFO] There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server. [INFO] Command start-domain failed. [ERROR] Unable to start domain"domain1". [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ |
为了解决问题 #1,我只是尝试在服务器未运行时发出部署目标。这次部署目标成功启动服务器,但部署失败并显示消息"CLI136 端口 0 应为数值"。见下文:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | > mvn glassfish:deploy [INFO] --- maven-glassfish-plugin:2.1:deploy (default-cli) @ arquillian-sample --- [INFO] Domain domain1 isn't started. Starting it for you. [INFO] Deprecated syntax, instead use: [INFO] asadmin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --user admin --echo --terse=false start-domain [options] ... [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --echo=true --terse=false start-domain --debug=true --domaindir C:\\apps\\glassfish-3.0.1\\glassfish\\domains --help=false --upgrade=false --verbose=false domain1 [INFO] Waiting for DAS to start ... [INFO] Started domain: domain1 [INFO] Domain location: C:\\apps\\glassfish-3.0.1\\glassfish\\domains\\domain1 [INFO] Log file: C:\\apps\\glassfish-3.0.1\\glassfish\\domains\\domain1\\logs\\server.log [INFO] Admin port for the domain: 4848 [INFO] Debug port for the domain: 9009 [INFO] Command start-domain executed successfully. [INFO] Command deploy failed. [ERROR] CLI136 Port 0 should be a numeric value. [ERROR] Deployment of S:\\Projects\\archfirstunf\\java\\trunk\\examples\\arquillian-sample\\target\\arquillian-sample.war failed. [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE |
我做错了什么?
这是我的插件配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <plugin> <groupId>org.glassfish.maven.plugin</groupId> maven-glassfish-plugin</artifactId> <version>2.1</version> <configuration> <glassfishDirectory>${glassfish.directory}</glassfishDirectory> <user>admin</user> <passwordFile>${glassfish.directory}/domains/domain1/config/domain-passwords</passwordFile> <domain> <name>domain1</name> </domain> <components> <component> <name>${project.artifactId}</name> target/${project.build.finalName}.war</artifact> </component> </components> <debug>true</debug> <terse>false</terse> <echo>true</echo> </configuration> </plugin> |
我正在使用以下配置(注意
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <plugin> <groupId>org.glassfish.maven.plugin</groupId> maven-glassfish-plugin</artifactId> <version>2.1</version> <configuration> <glassfishDirectory>${glassfish.directory}</glassfishDirectory> <user>admin</user> <passwordFile>${glassfish.directory}/domains/domain1/config/domain-passwords</passwordFile> <domain> <name>domain1</name> <httpPort>8080</httpPort> 4848</adminPort> </domain> <components> <component> <name>${project.artifactId}</name> target/${project.build.finalName}.war</artifact> </component> </components> <debug>true</debug> <terse>false</terse> <echo>true</echo> </configuration> </plugin> |
没有它们,事情就不会按预期工作(尽管它们应该是可选的)。但是启动、部署(无论是否启动服务器)等对我来说都很好。
PS:我不记得这是否重要,但我使用的是 2.2-SNAPSHOT 版本的插件。
更新:这是我使用的确切配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <plugin> <groupId>org.glassfish.maven.plugin</groupId> maven-glassfish-plugin</artifactId> <version>2.2-SNAPSHOT</version> <configuration> <glassfishDirectory>${glassfish.home}</glassfishDirectory> <user>${domain.username}</user> <passwordFile>${glassfish.home}/domains/${project.artifactId}/master-password</passwordFile> true</autoCreate> <debug>true</debug> <echo>true</echo> <skip>${test.int.skip}</skip> <domain> <name>${project.artifactId}</name> <httpPort>8080</httpPort> 4848</adminPort> <!-- [ERROR] CLI136 Port 0 should be a numeric value. --> </domain> <components> <component> <name>${project.artifactId}</name> <!--artifact>${project.build.directory}/${project.build.finalName}.war</artifact--> ${project.build.directory}/${project.build.finalName}</artifact> </component> </components> </configuration> </plugin> |
这是我得到的输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $ mvn glassfish:deploy [INFO] Scanning for projects... ... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building maven-glassfish-testcase Maven Webapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-glassfish-plugin:2.2-SNAPSHOT:deploy (default-cli) @ maven-glassfish-testcase --- ... [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile /home/pascal/opt/glassfishv3/glassfish/domains/maven-glassfish-testcase/master-password --interactive=false --echo=true --terse=true deploy --name maven-glassfish-testcase --force=false --precompilejsp=false --verify=false --enabled=true --generatermistubs=false --availabilityenabled=false --keepreposdir=false --keepfailedstubs=false --logReportedErrors=true --upload=false --help=false /home/pascal/Projects/stackoverflow/maven-glassfish-testcase/target/maven-glassfish-testcase [INFO] Application deployed successfully with name maven-glassfish-testcase. [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ... |
请注意,我没有收到任何奇怪的"已弃用"消息。一切都很好。
添加 httpPort 和 adminPort 增加了一个新的复杂性 - 现在我进行部署时身份验证失败(即使相同的身份验证正在通过 start-domain 目标)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | > mvn glassfish:start-domain [INFO] --- maven-glassfish-plugin:2.2-SNAPSHOT:start-domain (default-cli) @ arquillian-sample --- [INFO] Deprecated syntax, instead use: [INFO] asadmin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --user admin --echo --terse=false start-domain [options] ... [INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --echo=true --terse=false start-domain --debug=true --domaindir C:\\apps\\glassfish-3.0.1\\glassfish\\domains --help=false --upgrade=false --verbose=false domain1 [INFO] Waiting for DAS to start ........... [INFO] Started domain: domain1 [INFO] Domain location: C:\\apps\\glassfish-3.0.1\\glassfish\\domains\\domain1 [INFO] Log file: C:\\apps\\glassfish-3.0.1\\glassfish\\domains\\domain1\\logs\\server.log [INFO] Admin port for the domain: 4848 [INFO] Debug port for the domain: 9009 [INFO] Command start-domain executed successfully. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ > mvn glassfish:deploy [INFO] --- maven-glassfish-plugin:2.2-SNAPSHOT:deploy (default-cli) @ arquillian-sample --- [INFO] Deprecated syntax, instead use: [INFO] asadmin --port 4848 --host localhost --passwordfile C:\\apps\\glassfish-3.0.1\\glassfish/domains/domain1/config/domain-passwords --interactive=false --user admin --echo --terse=false deploy [options] ... [INFO] Command deploy failed. [ERROR] Authentication failed for user: admin [ERROR] (Usually, this means invalid user name and/or password) [ERROR] Deployment of S:\\Projects\\archfirstunf\\java\\trunk\\examples\\arquillian-sample\\target\\arquillian-sample.war failed. [ERROR] For more detail on what might be causing the problem try running maven with the --debug option [ERROR] or setting the maven-glassfish-plugin"echo" property to"true". [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.973s [INFO] Finished at: Wed Nov 10 01:51:04 EST 2010 [INFO] Final Memory: 10M/183M [INFO] ------------------------------------------------------------------------ |
将版本更改为 2.2-SNAPSHOT 没有任何区别。顺便说一句,快照在 java.net 存储库中不可用 - 我必须去这里获取它:
1 2 3 4 5 6 7 8 9 10 11 12 | <pluginRepository> <id>ocean</id> <url>http://maven.ocean.net.au/snapshot</url> <releases> <enabled>false</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository> |