我尝试学习Java EE 8,我已经按照https://javaee.github.io/tutorial/的官方指南进行了操作,但我遇到了这个问题:
--- cargo-maven2-plugin:1.4.4:redeploy (deploy) @ hello1 ---
[DeployerRedeployMojo] Resolved container artifact org.codehaus.cargo:cargo-core-container-glassfish:jar:1.4.4 for container glassfish5x
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 4.730s
Finished at: Mon Oct 09 16:16:40 CEST 2017
Final Memory: 18M/183M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.4.4:redeploy (deploy) on project hello1: Execution deploy of goal org.codehaus.cargo:cargo-maven2-plugin:1.4.4:redeploy failed: Cannot create configuration. There's no registered configuration for the parameters (container [id = [glassfish5x], type = [installed]], configuration type [existing]). Actually there are no valid types registered for this configuration. Maybe you've made a mistake spelling it? -> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
我完全按照指南进行操作,所以我不明白错误在哪里......
编辑: glassfish 5和4.1.1的错误相同。 如果我手动部署战争包它的工作;所以问题是maven和glassfish服务器之间的通信......
编辑2: 我找到了这个https://netbeans.org/bugzilla/show_bug.cgi?id=247746,但它没有工作......
答案 0 :(得分:6)
I had the same problems, but managed to solved it this way:
In the parent pom located in ../glassfish5/docs/javaee-tutorial/examples directory I change the following properties to
<cargo.plugin.version>1.6.4</cargo.plugin.version>
<glassfish.domain.name>domain1</glassfish.domain.name>
<glassfish.home>/Users/fgjensen/Java/J2EE8/glassfish5</glassfish.home>
<integration.container.id>glassfish4x</integration.container.id>
This forces Maven to use the latest version of the cargo plugin. The plugin does not support Glassfish 5 as integration container currently. However, it builds and installs the applications anyway.
After this I also had to set the asadmin password in the password.properties file located in the /glassfish5/glassfish/domains directory.
I hope this solves your problems.
答案 1 :(得分:1)
Flemming G. Jensen说:
我遇到了同样的问题,但设法以这种方式解决了问题:
在位于../glassfish5/docs/javaee-tutorial/examples目录的父pom中,我将以下属性更改为
<cargo.plugin.version>1.6.4</cargo.plugin.version> <glassfish.domain.name>domain1</glassfish.domain.name> <glassfish.home>/Users/fgjensen/Java/J2EE8/glassfish5</glassfish.home> <integration.container.id>glassfish4x</integration.container.id>
这迫使Maven使用最新版本的货物插件。该插件目前不支持Glassfish 5作为集成容器。但是,它无论如何都会构建和安装应用程序。
在此之后,我还必须在/ glassfish5 / glassfish / domains目录中的password.properties文件中设置asadmin密码。
我希望这能解决你的问题。
你也可以在你的家庭目录中创建一个符号链接到GlassFish和JDK,而不是修改行
<glassfish.home>/Users/fgjensen/Java/J2EE8/glassfish5</glassfish.home>
答案 2 :(得分:0)
我按照以下步骤解决了这个问题:
以这种方式在pom.xml上编辑glassfish home属性:
<properties>
<glassfish.home>${glassfish.home.prefix}/glassfish4</glassfish.home>
</properties>
您应该在shell上运行“mvn install -X”来验证发生了什么
答案 3 :(得分:0)
尝试仅编辑父pom(在我的情况下为C:\ Program Files \ Java \ glassfish4 \ docs \ javaee-tutorial \ pom.xml)并更改此行
<glassfish.home>${glassfish.home.prefix}/glassfish4</glassfish.home>
获得绝对路线。
就我而言:
<glassfish.home>C:\Program Files\Java\glassfish4</glassfish.home>
对我有用。祝你好运。
答案 4 :(得分:0)
确保glassfish服务器已在部署之前启动(命令$ mvn install) 请注意,glassfish v4需要JDK6或JDK7。而glassfish v5需要JDK7或JDK8,而不是其他。 分享
答案 5 :(得分:0)
这在具有NetBeans 11.3的Windows 10上对我有效
<cargo.plugin.version>1.4.4</cargo.plugin.version>
<glassfish.domain.name>domain1</glassfish.domain.name>
<glassfish.home>C:\Javatools\glassfish5</glassfish.home>
<integration.container.id>glassfish4x</integration.container.id>
在C:\ Javatools \ glassfish5 \ docs \ javaee-tutorial \ examples \ pom.xml的第43-46行中,将java_ee_sdk-8u1.zip提取到C:\ Javatools。
引发错误的原始代码:
<cargo.plugin.version>1.4.4</cargo.plugin.version>
<glassfish.domain.name>domain1</glassfish.domain.name>
<glassfish.home>${glassfish.home.prefix}/glassfish5</glassfish.home>
<integration.container.id>glassfish5x</integration.container.id>
我需要为glassfish.home值使用绝对路径,以使其正常工作。